{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "PHCv2.4.90 released 2024-03-20 works!\n"
     ]
    }
   ],
   "source": [
    "import poly_tools as pt\n",
    "import numpy as np\n",
    "import winding_GBZ_solver as wGs\n",
    "import matplotlib.pyplot as plt\n",
    "from numpy import sin, cos, exp, log, sqrt, pi, tan"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "Jx, Jy = np.random.randn(2) + 1j * np.random.randn(2)\n",
    "delta_x, delta_y = np.random.rand(2) * 2 * np.pi\n",
    "gamma_x, gamma_y = np.random.rand(2) + 0.5\n",
    "Delta_xy = delta_x - delta_y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "Jx1 = gamma_x * np.exp(1j * delta_x) * Jx\n",
    "Jx2 = 1 / gamma_x * np.exp(1j * delta_x) * Jx.conjugate()\n",
    "Jy1 = gamma_y * np.exp(1j * delta_y) * Jy\n",
    "Jy2 = 1 / gamma_y * np.exp(1j * delta_y) * Jy.conjugate()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(-0.5805438073987677-0.3494355951334079j) (-0.7564203624865851+0.08915971308433038j)\n",
      "1.1981191181536432 0.8836123214151201\n",
      "1.4433328448927338 1.3845340877531194\n"
     ]
    }
   ],
   "source": [
    "print(Jx, Jy)\n",
    "print(delta_x / np.pi, delta_y / np.pi)\n",
    "print(gamma_x, gamma_y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# x-strip and y-strip"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "def ChP_xy(E, betax, betay):\n",
    "    return (\n",
    "        E \n",
    "        - Jx1 / betax\n",
    "        - Jx2 * betax\n",
    "        - Jy1 / betay\n",
    "        - Jy2 * betay\n",
    "    )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "def vxy(E, r, thetax):\n",
    "    return (\n",
    "        E * np.exp(-1j * delta_y)\n",
    "        - np.exp(1j * Delta_xy) * (\n",
    "            gamma_x * Jx / r * np.exp(-1j * thetax)\n",
    "            + Jx.conjugate() * r * np.exp(1j * thetax) / gamma_x\n",
    "        )\n",
    "    )\n",
    "\n",
    "def diff_vxy(E, r, thetax):\n",
    "    ''' Derivative of vxy against thetax'''\n",
    "    return np.exp(1j * Delta_xy) * (\n",
    "        1j * gamma_x * Jx / r * np.exp(-1j * thetax)\n",
    "        - 1j / gamma_x * Jx.conjugate() * r * np.exp(1j * thetax)\n",
    "    )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "def solve_beta_x(E, thetay):\n",
    "    lhs = np.exp(1j * delta_y) * 2 * (\n",
    "            Jy.conjugate() * np.exp(1j * thetay)\n",
    "        ).real\n",
    "    roots = np.roots(\n",
    "        [Jx2, lhs - E, Jx1]\n",
    "    )\n",
    "    return roots"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Test derivative $\\frac{d|\\mathcal{B}_1|^2}{d\\theta_1}$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "E = np.random.randn() + 1j * np.random.randn()\n",
    "thetay = np.random.rand() * 2 * np.pi"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.0\n",
      "2.482534153247273e-16\n"
     ]
    }
   ],
   "source": [
    "# Test root solving\n",
    "roots = solve_beta_x(E, thetay)\n",
    "for betax in roots:\n",
    "    print(\n",
    "        abs(ChP_xy(E, betax, gamma_y * np.exp(1j * thetay)))\n",
    "    )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2.220446049250313e-16\n",
      "(7.443088536351894e-05+8.320226232427785e-05j)\n",
      "(7.442938660390979e-05+8.320415385255544e-05j)\n",
      "2.4133295653336268e-09\n",
      "\n",
      "3.1401849173675503e-16\n",
      "(-3.6619386400760234e-05-4.093745046085395e-05j)\n",
      "(-3.6619749223118804e-05-4.093699259698481e-05j)\n",
      "5.841912242937114e-10\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# Test vxy\n",
    "roots = solve_beta_x(E, thetay)\n",
    "for betax in roots:\n",
    "    r = abs(betax)\n",
    "    thetax = np.log(betax).imag\n",
    "    lhs = 2 * (Jy.conjugate() * np.exp(1j * thetay)).real\n",
    "    print(abs(lhs - vxy(E, r, thetax)))\n",
    "    dthetax = np.random.randn() * 1e-4\n",
    "    v2 = vxy(E, r, thetax + dthetax)\n",
    "    print(v2 - vxy(E, r, thetax))\n",
    "    print(diff_vxy(E, r, thetax) * dthetax)\n",
    "    print(abs(v2 - vxy(E, r, thetax) - diff_vxy(E, r, thetax) * dthetax))\n",
    "    print()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[-0.00585714  0.00022745]\n",
      "[-0.00586065  0.00022746]\n",
      "[ 3.51332287e-06 -1.03724960e-08]\n"
     ]
    }
   ],
   "source": [
    "# Test derivative\n",
    "dtheta = np.random.randn() * 1e-3\n",
    "# 1. Calculate betax for theta and theta + dtheta\n",
    "betax1 = solve_beta_x(E, thetay)\n",
    "betax2 = solve_beta_x(E, thetay + dtheta)\n",
    "\n",
    "# 2. Match solutions by distance\n",
    "distance_list = np.abs(betax2 - betax1[0])\n",
    "if np.argmin(distance_list) == 0:\n",
    "    pass\n",
    "else:\n",
    "    betax2 = betax2[::-1]\n",
    "\n",
    "# 3. Calculate derivative for theta\n",
    "derivative_list = np.zeros(2)\n",
    "for point_ind in range(2):\n",
    "    curr_betax = betax1[point_ind]\n",
    "    curr_r = abs(curr_betax)\n",
    "    curr_thetax = np.log(curr_betax).imag\n",
    "    C = (2 * gamma_x ** 2 / (curr_r ** 2)\n",
    "         / abs(\n",
    "            gamma_x ** 2 * Jx / (curr_r ** 2) / curr_betax\n",
    "            - Jx.conjugate() / curr_betax.conjugate()\n",
    "           ) ** 2\n",
    "        )\n",
    "    thetay_term = (Jy * np.exp(-1j * thetay)).imag\n",
    "    diff_term = diff_vxy(E, curr_r, curr_thetax).imag\n",
    "    derivative_list[point_ind] = 2 * C * thetay_term * diff_term\n",
    "\n",
    "# 4. Calculate numeric derivative\n",
    "print(np.abs(betax2) ** 2 - np.abs(betax1) ** 2)\n",
    "print(derivative_list * dtheta)\n",
    "print(np.abs(betax2) ** 2 - np.abs(betax1) ** 2 - derivative_list * dtheta)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Test winding number"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Jy charge 1.0\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.0\n",
      "1.0\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlcAAAGdCAYAAAA/oFbLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB5A0lEQVR4nO3deXhTVf4G8DfpkjRd6ULblK5AgZa1UKhQFgVFURRGRh2VRaqijqIwyuLogCtugM7401FxUFHABXFBRVaVQhe6UKBlL93TQre0Tdq0Sc7vj9BIaNlDk7Tv53ny0N5zcvM9uaV5e5dzJUIIASIiIiKyCqmtCyAiIiLqTBiuiIiIiKyI4YqIiIjIihiuiIiIiKyI4YqIiIjIihiuiIiIiKyI4YqIiIjIihiuiIiIiKzI2dYFOCKj0YiysjJ4enpCIpHYuhwiIiK6BEII1NfXQ6lUQiq9dvuXGK6uQFlZGUJDQ21dBhEREV2B4uJi9OjR45qtn+HqCnh6egIwbRwvLy8bV0NERESXoq6uDqGhoebP8WuF4eoKtB4K9PLyYrgiIiJyMNf6lB6e0E5ERERkRQxXRERERFbEcEVERERkRQxXRERERFbEcEVERERkRQxXRERERFbEcEVERERkRQxXRERERFbEcEVERERkRQxXRERERFbEcEVERERkRQxXRERERFbEGzcTEVGn12IwQt3YglptC9SNLVA3NkPd2IIGnQFGo4DeKP78VwjoDQIGIWAwGmEwwvyvi5MECldnKFydoJA5wf3M1+4yZ7i5Wn7vKXeGixP3YXRFDFdEROSQNDo9ymobUXrmUVbbiMp6U2iqbWyGulEPtdb0vabZ0OH1SSSAv4cMSm85gr3dEOQth9LH9LXSR44gbzcEesrgzADW6TBcERGR3RFCoLKh2RyaSmssQ1RpbSNqtS2XvV4vuTO8FS7wcXOFt5sL3GVOcHaSwkkigbNUAqn0nH/PLHc6s8xgFNDo9NA2G/78t1kPrc4AbYvpX02zHk0tRggBnK7X4XS9Djkl6nbrkUqA7p5y9OzujphgL8QovRAT7I2oAHfu9XJgDFdERGQzQgiU1zXhaEUDjlXU41hFA46eqsfxigbU6/QXfb6n3BkhPm6mRzc3BHjI4KNwgbfCFJ583FxM/ypc4Cl3gZNU0gGjAgxGgRptM8rVTSirbYRK3YQydSNUtU2mZepGVNQ1ocVgGn95XRN2H68yP9/VSYroIA/EBHuhX7CX6V+lF7zkLh1SP10dhisiIrrmhBBQqZtw7NSlhyipBAj0kkN5JjwpzwSoEB/TMqWPm92GDSepBP4eMvh7yNA/xLvdPkajQGWDDqW1jThaUY+8sjrkqepwSFWPBp0eB0vrcLC0zuI5fQI9Mbq3PxJ7+2NEpB/cXJ06Yjh0mSRCCGHrIhxNXV0dvL29oVar4eXlZetyiIjsihACpbWNyClWI6ekFvuKa3GorO68IcpZKkGEvzt6d/dA70BPRAd6oHd3T0T6u8PVuesdGjMaBUpqGpGnUiNPZQpdh1R1KK1ttOjn6iTFsIhuGN07AKN7+yMm2AvSDtoz56g66vOb4eoKMFwREf2pVtuMnBI1coprTY+SWlQ2NLfp1xqiogM90Ku7KURFB3oiwq9rhqjLVa1pxp4Tldh1tBK7jp1GmbrJot3X3RWjevnjhr4BuCkmCO4yHpw6F8OVHWO4IqKuqqnFgNyyOnOIyimuRUGVtk0/Z6kE/YK9MCjUG4N6+GBAD29E+XswRFmJEAL5lRrsOnoayccrkXKiyuKKSIWrE27pH4w7h4YgIdKPe7TOYLiyYwxXRNRVNLUYkF1Ui5T8KqSeqMK+4lo0G4xt+kX6u2NQD28MCvXBoFAfxAR7Qe7C84E6SovBiOyiWvxx9DR+3F+GwrMCb4iPG6YOCcFf4kIQFeBhwyptj+HKjjFcEVFn1aw3Yn9JLfacqELKiSpkFdVAp7cMU/4erhgc6oNBPUxBamAPb/goXG1UMZ1LCIHMwhpsyCrFpv1lqG/681y3uDAf/CWuB6YMCYFHFzxsyHBlxxiuiKiz0BuMOFCqRkq+KUxlFNSgscVywk1/Dxmu6+mH66L8cF1PP0T4KSCR8DCTI2hqMWBrXgW+zSrBH8cqYTCaPvK93Vwwe1QkZo2MgLfCPq+4vBYYruwYwxURObKTlRpsP1SB3ccrsbegBg3nXMXn6+6KhChfc5jqGeDBMNUJnKpvwg/7yrA2vQj5pzUAAA+ZM2ZcF46kxEj4echsXOG1x3BlxxiuiMiRNOuN2FtQjR2HT2HH4VM4WamxaPd2c8GISF/T3qmefoju7skToDsxg1Hgl4MqvLvjOA6X1wMA3FyccN+IMDw8JgrdveQ2rvDaYbiyYwxXRGTvTtfr8NsRU5jadazSYu+Ui5MEIyL9MDY6ANf19OP8SF2U0Siw7VAF3t15HPvP3J7H1VmKe+JD8cQNvRHg2fn2ZDFc2TGGKyKyN0II5JbVYfuhU9hx5BRyimst2v09XHF9n+4Y3687RvXyh6edzmxOHU8Igd+PnsZ/dhxHZmENANM9GJ+d1A93DQvtVMGb4cqOMVwRkT3Q6Q1IPlaJrXkV2HH4FE7V6yzaB4R44/q+3TG+b3cMCPHuVB+SZH1CCKTkV+GVnw4ht8x0253hEb549S/90au7p42rsw6GKzvGcEVEttKsNyL5+Gls2q/C1rwKi8vsFa5OSOzlj/H9uuP6Pt079bkzdO3oDUZ8sqcAK7YehbbZABcnCR4d2xOPXd/L4ecuY7iyYwxXRNSRmvVG7D5eiU37VdiSV24RqLp7ynBL/yCM7xeIEVG+kDk79ocf2Y+SGi2WfJ+L7YdPATBNFPvKlP4Y2cvfxpVdOYYrO8ZwRUTXWrPeiN0nKvHTfhW25Jaj7pxANWlAMG4dGIyhYd14uI+uGSEENh8sx5Ifcs2HnR8YFYFnJ/WDi5Pj3cqI4cqOMVwR0bXQYjDtofppvwpb8iqgbmwxtwV4yjCpfxBuHajEsHAGKupYdU0teHPzEaxJLQQAXBflh3fvHeJwc2MxXNkxhisispY/b1VSgl8OlqNW+2eg8veQYdKAIEwaEIz4CF84MVCRjf2aW475X+6DptmAEB83fDB9KPqHeNu6rEvGcGXHGK6I6GqV1jZiY1YJNmSVWkzq6e/hilv6B2PSgGAMj2SgIvtztKIeD3+WgYIqLeQuUrx+50DcMTjE1mVdEoYrO8ZwRURXorHZgM25KmzILMXuE5Vo/e2rcHXCLf2DcWdcCEZE+TFQkd1Ta1swd302fj96GgAwZ0wUFtzc1+5/dhmu7BjDFRFdKiEEMgpr8E1GCX46oLKYKT0hyhfThobilv5BcJc527BKostnMAq8teUI3v/tBABgfN/ueO/+OLu+YpXhyo4xXBHRxZTUaPFtVik2ZJWgsEprXh7q64ZpcaH4S1wIQn0VNqyQyDo27S/D01/noKnFiJtiAvF/98XZ7ZWEHfX5bfXRNzU1ISkpCT4+PggODsby5cvP2zc7OxsjRoyAQqFAfHw8MjMzLdrXrVuHnj17QqFQYOrUqaisrDS3CSGwaNEiBAQEwNfXFwsWLIDRaAQALF26FBKJpM0jKirK/PxBgwa1aT948KCV3w0i6kqaWgzYmF2Cez9KReLrO7Fi61EUVmnh7uqEu4b1wJcPJ+D3p6/HkxN6M1hRp3HbQCVWzYiHq7MUW/IqMP+rHBiMXXu/jdX3Qz/zzDPIyMjAjh07UFhYiJkzZyI8PBzTpk2z6KfRaDBp0iTcd999+OSTT/Df//4Xt956K06cOAF3d3ekp6cjKSkJ//3vfzF48GDMnTsXs2bNwqZNmwAAK1aswNq1a7Fx40a0tLTg/vvvR/fu3fH000/j6aefxiOPPGJ+rdraWowaNQpPPvkkAMBgMODo0aP4/fffER0dbe7n7++4E6MRke0UVmnwRVoRvsootrjab2RPP0wb2gM39w+CwpWH/ajzSuztj//eH4c5azLxY04ZXJ2keHPawC47ZYhVDwtqNBr4+/vjl19+wbhx4wAAL7/8MrZt24bffvvNou///vc/vPzyyzhx4gQkEgmEEIiOjsY///lPzJo1CzNmzIBUKsUnn3wCACguLkZ4eDhOnDiByMhIhIWF4cUXX8SsWbMAAJ9//jmee+45FBQUtKlrzpw5OHToEH7//XdIJBIcP34cffr0gUajgVx++beH4GFBItIbjNhx+BQ+TyvCH2dO6gWAEB833B1vOuzXoxv3TlHXsvmgCn9fmw2DUeDeEWF4ZUp/SCT2E7A66vPbqn9K5eTkoKWlBSNHjjQvS0xMxCuvvAKj0Qip9M+jkKmpqUhMTDS/6RKJBKNGjUJKSgpmzZqF1NRULFq0yNw/NDQUYWFhSE1NhUwmQ3FxMcaMGWPxOoWFhVCpVAgODjYvP3r0KFavXo3du3ebXysvLw+hoaFXFKyIqGs7Vd+EL9OLsS69CGXqJgCARAKMjQ7A9IRwjOvT3e6vmCK6Vm7uH4wVdxnx1Jf7sDatCDJnKf51W4xdBayOYNVwpVKp4O/vD1dXV/OywMBANDU1oaqqCgEBARZ9Y2NjLZ4fGBhoPu9JpVJBqVS2aS8pKYFKpQIAi/bAwEAAQElJiUW4evPNNzF+/HjEx8eblx06dAiurq647bbbkJGRgT59+uDNN9/E8OHD2x2XTqeDTvfn3ebr6uou7Q0hok5BCIG0k9VYk1qIXw+WQ3/mfJJuChfcFR+K+4aHI8yPe6mIAOCOwSFo1hvxzDf7sXp3AcJ9FZg1KtLWZXUoq4YrrVYLmcxyKvzW788OJxfq29rvQu1ardZi3ed7nfr6eqxbtw5ff/21xXoOHz6MmpoaPPjgg3jxxRfx0UcfYfz48eY9WudatmwZXnjhhYu/AUTUqdQ1tWBjVik+Ty3EsVMN5uVxYT6Yfl04bukfDLmL/V52TmQrfx0WilptC175+RBe/fkwhkX4OtRM7lfLquFKLpe3CVGt3ysUikvq29rvQu2th/N0Op3F1+e+zubNm6FQKDBx4kSL9Xz00UfQarXm463vvfcedu/ejTVr1uDZZ59tM67Fixdj/vz55u/r6uraDWFE1DkcrajHJ3sK8F12KbTNBgCAm4sTpgwJwf0JYYhVdp0PCaIr9eDoSKSdrMa2QxV4fG0WNs0dDY8uMp+bVUcZEhKCyspK6PV6ODubVl1eXg43Nzf4+Pi06VteXm6xrLy83HxI70LtISEh5u8jIiLMXwOwOCS4efNmTJ482eJcLwBwdna2OJFNIpGgb9++KC0tbXdcMpmszV40IupchBDYc6IKH+3Kx29H/jxBvVd3D0xPCMfUuBB4yV1sWCGRY5FIJHjrrwMx6Z1dKKjS4tlvD+CdewZ3ifOvrDrP1eDBg+Hi4oLU1FTzsuTkZMTHx7cJOAkJCdizZw9aL1YUQmD37t1ISEgwtycnJ5v7FxcXo7i4GAkJCVAqlQgLC7NoT05ORlhYmEW4SktLw6hRo9rUef3111sc5jMajdi/fz/69u17le8AETmaFoMR32WX4tZ/J+O+VWn47chpSCTAxNhArHsoAVvnjcHMkREMVkRXwEfhiv/cOwROUgl+yCnDVxnFti6pQ1h1z5VCocDMmTPxyCOPYPXq1SgtLcVbb72F1atXAzDtXfL29oabmxumTZuGRYsW4amnnsKcOXPwwQcfQKPR4K677gIAPProoxg3bhyuu+46xMfH48knn8Rtt92GyMhIc/vChQvRo0cPAMCiRYvwj3/8w1yLXq/HkSNHEBMT06bOyZMn48UXX8SQIUPQp08fvPPOO6itrTVP60BEnV9dUwvWpRXhkz0FUJ256s/NxQl/HdYDs0dFIsLf3cYVEnUOQ8N98Y+bovHG5iNY8kMuBod2Q58gT1uXdW0JK9NoNGLGjBnC3d1dKJVKsXLlSnMbALF69Wrz92lpaWLIkCFCLpeL4cOHi6ysLIt1rV69WoSGhgp3d3cxdepUUVlZaW7T6/Vi3rx5wsfHR/j7+4uFCxcKo9Fobi8vLxcAxOHDh9vUaDQaxSuvvCLCwsKETCYTY8aMEQcOHLjkMarVagFAqNXqS34OEdmH4mqNePHHXBH7r80ifOEmEb5wkxj60lbxn+1HRXWDztblEXVKBoNR3L8qVYQv3CQmrvxd6A3Giz/pGuioz2/eW/AKcBJRIsezv6QWH+06iZ8PqMy35ujd3QMPjY7C7YOVvOqP6BqrbNBh/PLfoW5swet3DsDd8WEdXoNDTiJKRGRPjEaBHYdP4aNd+Ug7WW1ePqqXHx4cHYVx0QFd4uRaInvg7yHDEzf0wss/HcLyLUdx20Al3Dvp1YOdc1RE1KUZjAKb9pfh3R3HzfNTOUslmDxIiQdHR3IqBSIbmX5dOD5LKURRtRYf7crHUxOiL/4kB8RwRUSdht5gxHf7yvDezuPIr9QAADxlzrh3RBhmjYpAsLebjSsk6tpkzk5YeHNf/H1tFj78Ix/3Dg9Dd6/Odys6hisicnjNeiO+zSrB//12HMXVjQAAH4ULkkZFYsbICHi7cRoFInsxaUAQhoT5ILuoFiu3HcWyvwy0dUlWx3BFRA6rqcWArzOK8d/f81FaawpVfu6ueHB0FKZfF95lZoMmciQSiQT/nNQP0/6bgi/3FuOBUZGIDuxcUzPwNw8ROZymFgPWphXhgz9OoKLOdOurAE8Z5oyJwr0jwqBw5a82Ins2LMIXt/QPwi8Hy/Hv7cfw7r1xti7JqvgbiIgchkanxxdphfjwj5OobDCFqmBvOR4Z2xN3x4dyOgUiB/L363vhl4Pl2JJbgWpNM3zdXW1dktUwXBGR3atvasFnKYVYtSsfNdoWAECPbm54bFwv3Dk0BDJnhioiR9M/xBsDQrxxoFSNb7NK8ODoKFuXZDUMV0Rkt5paDPh0TwHe//0Eas+Eqgg/BR67vhemDgmBi5NVb49KRB3s7vhQHChV48u9xUhKjOw0884xXBGR3WkxGPF1Rgne2X7UfE5VVIA75t7QG7cNDIYzQxVRp3D7YCVe+ekQjp1qQFZRLYaGd7N1SVbBcEVEdsNoFNh0QIUVW46goEoLAAjxccO8G6MxdUgInKSd469aIjLxkrvg1oHB+CazBOvTixiuiIisRQiB346expubjyBPVQfANKXC4zf0wr0jwnhOFVEndk98KL7JLMGm/Sr8a3IMPOWOPy8dwxUR2VRGQTXe2HwE6QWme/95ypzx0JgozE6M5DxVRF3A0PBu6NXdA8dPNeDnAyqb3NDZ2vibi4hs4pCqDm/+egQ7Dp8CAMicpZg5MgKPju2Jbp3okmwiujCJRILJA5VYue0o/jhWyXBFRHS5Cqs0WLH1KH7IKYMQgJNUgruG9cDc8b157z+iLuq6nn5YuQ1Iy6+CEMLhrxpkuCKiDlHZoMPb245ifXox9EYBALhtYDDm3xiNqAAPG1dHRLY0KNQbchcpKhuacfxUA3o7+O1wGK6I6JrS6Q1YvbsA/7fjOOp1egDA2OgAPDOxD/qHeNu4OiKyBzJnJwwN74bdx6uQml/FcEVE1B4hBDYfLMeyXw6jqNo0rcKAEG/889Z+SIjys3F1RGRvEiL9sPt4FVLyqzD9ughbl3NVGK6IyOoOlqrx4qY8pJ80XQEY6CXDMxP74i9DQiDlXFVE1I7revoBW4HU/GqHP++K4YqIrKairglv/noEG7JKIITpCsA5Y3vikbFRULjy1w0Rnd/AHj5wc3FCtaYZRysa0CfIcQ8N8rcdEV21phYDPvojH+//fgLaZgMAYMpgJRbc3BdKH14BSEQX5+osxdDwbkg+XomMwmqGKyLqmoQQ+CGnDK//chhl6iYAwJAwH/zrthgMCesct7Egoo7Tq7sHko9XoujM7a8cFcMVEV2RrKIavLQpD9lFtQAApbcciyb1w+SBwQ59rgQR2U6orwIAUFLTaONKrg7DFRFdloq6Jiz7+RC+21cGAFC4OuGxcT3x4OgoyF14D0AiunKh3UynERTXcM8VEXUBeoMRn6UUYsXWo2jQ6SGRANPieuDpiX0Q6CW3dXlE1An06Gbac1VczXBFRJ1cZmENnvvuIA6p6gAAg0J98PId/TGgBycBJSLrCfU17bmq0bagQad32Ju3O2bVRNQhajTNeH3zYazfWwwA8HZzwaJb+uLuYaGcr4qIrM5T7gIfhQtqtS0oqdGib5CXrUu6IgxXRNSG0SjwVUYxXt98GDXaFgDAXcN6YOHNfeHnIbNxdUTUmfXo5oZabQuKqxsZroioc8gtU+O57w6arwLsG+SJl6f0x7AIX9sWRkRdQmg3BQ6W1qHUgU9qZ7giIgBAfVMLVmw9ik/3FMAoAHdXJ8y7MRqzRkbA2Ulq6/KIqItoPc9K22KwcSVXjuGKqIsTQuDH/Sq8vCkPp+p1AIDbBgbjuVtjEOTNqwCJqGM5O5nO5zQYhI0ruXIMV0Rd2InTDfjX9wex+3gVACDS3x0v3hGL0b0DbFwZEXVVTmcultEbGa6IyIG0GIz48I98vLPtGJoNRsicpXj8+l54eGwUZM6cCJSIbMdZajoNwcBwRUSO4mCpGgu+2Y+8M3NWjesTgBdv748wP4WNKyMi6hx7rqx+lmpTUxOSkpLg4+OD4OBgLF++/Lx9s7OzMWLECCgUCsTHxyMzM9Oifd26dejZsycUCgWmTp2KyspKc5sQAosWLUJAQAB8fX2xYMECGI1Gc/vKlSshkUgsHk8//bS5fdu2bejfvz8UCgVuuOEG5OfnW/FdILI/TS0GvLH5MO74v93IU9XBR+GClXcPwupZ8QxWRGQ3nM+EK8NZn+mOxurh6plnnkFGRgZ27NiB9957Dy+88AK++eabNv00Gg0mTZqE0aNHIzMzEyNHjsStt94KjUYDAEhPT0dSUhKWLFmC1NRU1NTUYNasWebnr1ixAmvXrsXGjRuxYcMGfPHFF1ixYoW5PS8vD4899hhUKpX5sWTJEgBAUVERpkyZggceeAB79+5FQEAApkyZAiEcNyUTXUhGQTUm/XsX3vvtBAxGgVsHBmPb/LGYOqQHb7JMRHalM+y5grCihoYGIZfLxc6dO83LXnrpJTF27Ng2fT/++GMRGRkpjEajEEIIo9EoevXqJVavXi2EEGL69Oli5syZ5v5FRUVCIpGI/Px8IYQQoaGh5r5CCLFmzRoRHh5u/n7UqFHigw8+aLfO559/3qImjUYjPD09Leq+ELVaLQAItVp9Sf2JbKWhqUUs+f6giFi0SYQv3CSGvbxVbD6osnVZRETntfzXwyJ84Sbx/HcHrL7ujvr8tuqeq5ycHLS0tGDkyJHmZYmJiUhLS7M4ZAcAqampSExMNP/VLJFIMGrUKKSkpJjbx4wZY+4fGhqKsLAwpKamoqysDMXFxRbtiYmJKCwshEqlAgAcOnQI0dHR7dZ57roVCgXi4uLMr03UGew6dho3rfwDn+wpgBDAX4f2wLZ5YzExNsjWpRERnZcj77BqZdVwpVKp4O/vD1dXV/OywMBANDU1oaqqqk1fpVJpsSwwMBAlJSUXbW8NUGe3BwYGAgBKSkpQUVGB6upqfPLJJ4iIiEC/fv3w1ltvmQ/7Xey1z6XT6VBXV2fxILJXam0Lnvk6B9M/TkdpbSN6dHPDmqThePOvg+CtcLF1eUREF1StbQYAdFO4XqSn/bLq1YJarRYymeV9x1q/1+l0l9S3td+F2rVarcW6z32dw4cPAzAFph9//BHZ2dmYO3cunJycMG/evIu+9rmWLVuGF1544eJvAJGN/Zpbjue+O4jT9TpIJMDM6yLwzMQ+cHfQO8sTUddT1WD6LPb3YLgCAMjl8jYBpfV7hUJxSX1b+12oXS6Xm78/++vW14mLi0NlZSX8/PwAAAMGDMDp06fx/vvvY968eeddt4+PT7vjWrx4MebPn2/+vq6uDqGhoRd+M4g6UFWDDv/6Phc/HTDt1Y0KcMcbdw7k/QCJyOFUNZj2XDnyTeKtGq5CQkJQWVkJvV4PZ2fTqsvLy+Hm5tYmuISEhKC8vNxiWXl5OYKDgy/aHhISYv4+IiLC/DUA8/Nbg1Wrfv36obS09ILrHjx4cLvjkslkbfZ0EdmL7YcqsHDDflQ2NMNJKsEjY6PwxA29IXfhZKBE5HiqNKZw5e/A4cqq51wNHjwYLi4uSE1NNS9LTk5GfHw8pFLLl0pISMCePXvM50EJIbB7924kJCSY25OTk839i4uLUVxcjISEBCiVSoSFhVm0JycnIywsDMHBwVi1ahX69OljMbXCvn370Ldv33bXrdVqkZ2dbX5tIkeg0emx+NsDSPo0A5UNzegT6Inv/z4Kz0zsy2BFRA6r8sxhQT8HPixo1akYhBBizpw5IjY2VqSnp4uNGzcKLy8vsWHDBiGEECqVSmi1WiGE6XLIgIAAMXfuXJGbmyvmzp0rgoKCRENDgxBCiD179ghXV1exatUqkZOTI8aNGycmT55sfp1ly5YJpVIpdu7cKXbu3CmUSqVYvny5EEKIgoIC4enpKebPny+OHTsm1q1bJ7y8vMSXX34phBDi5MmTQi6Xi2XLlomDBw+Ku+66SwwcONA8LcTFcCoGsrWMgmox5o0dInzhJhGxaJN4eVOuaGzW27osIqKr0tSiF+ELTVPH1Gqarb7+jvr8tnq40mg0YsaMGcLd3V0olUqxcuXKP18MsJibKi0tTQwZMkTI5XIxfPhwkZWVZbGu1atXi9DQUOHu7i6mTp0qKisrzW16vV7MmzdP+Pj4CH9/f7Fw4UKLcLRr1y6RkJAg3NzcREREhHj//fct1v3zzz+L6Oho4ebmJsaPH2+eP+tSMFyRrTTrDeKtXw+LyDPzVl336jax+/hpW5dFRGQVZbVaEb5wk+i5+KdL3uFxOTrq81siBKclv1x1dXXw9vaGWq2Gl5eXrcuhLuL4qQbM+3IfDpSqAQB/GRKCJbfHwtuN0ysQUedwsFSN2/6TjEAvGdKenWD19XfU5zevzyayc0ajwJrUQrz68yHo9Eb4KFzwypQBuHVgsK1LIyKyqtLaRgBAgKfjnswOMFwR2bVydROe+SYHu46Zblo+urc/3vrrIAR6yW1cGRGR9R0prwcARAd62riSq8NwRWSnNu0vwz83HoS6sQVyFymendQP0xPCeaNlIuq0Dpeb7oDSL8ixT7lhuCKyM+rGFiz5/iC+21cGABjYwxsr7hqMXt09bFwZEdG1dVhl2nPVN5h7rojISvYV1+LxtVkoqWmEk1SCv1/fC0/c0AsuTladko6IyO40NhtwskoDAOjLPVdEdLWEEPg4+SRe++Uw9EaBUF83vHPPEMSFdbN1aUREHeJoRT2EMN1TkCe0E9FVqdE04+mvc7D98CkAwKQBQXjtzoHwknOKBSLqOlrPt3L0vVYAwxWRTe0tqMbcddlQqZvg6izFv26LwX0jwnjSOhF1OYdaz7cKcuzzrQCGKyKbMBoF3v/9BFZsPQqDUSDK3x3v3huHGKXj/8VGRHQlzHuugh3/9yDDFVEHO12vw/yv9pnnrpo6JAQvT+kPdxn/OxJR12Q0CuSVtR4W5J4rIroMu49X4qkv9+F0vQ5uLk548Y5YTBvag4cBiahLy1PVoa5JDw+ZM/owXBHRpdAbjPj39mP4z87jEALoE+iJd+8dgt4OPgsxEZE1tO7JT4jy7RRTzzBcEV1j5eomzF2fjfST1QCAvw0Pxb9ui4Wbq5ONKyMisg+7j5vCVWIvfxtXYh0MV0TXUPKxSsxdn41qTTPcXZ3w6l8G4I7BIbYui4jIbjS1GJBeYPrjM7E3wxURnYcQAh/8kY83Nh+GUQCxSi+8e28cIv3dbV0aEZFdySioQbPeiCAvOXoGdI7bfDFcEVmZRqfHgm/246cDKgDAXcN64MU7+kPuwsOARETn2nX8NABgVC//TnNxD8MVkRWdrNTg4c8ycOxUA1ycJFgyOZaTghIRXUDr+VajO8khQYDhishqth+qwFPr96Fep0d3Txnev38ohobz3oBEROdTrWlG7pn5rUb28rNxNdbDcEV0lYxGgXe2H8M7248BAIaFd8N798Whu5fcxpUREdm3PScqIYRp4tDunp3ndybDFdFVUDe2YP6X+8w3XZ55XTj+eWsMXJ0df54WIqJrbWteBYDOMwVDK4Yroit0pLwej3yeiZOVGsicpXhl6gBMG9rD1mURETkEbbPeHK5uHRhs42qsi+GK6Aps2l+GBd/sh7bZgBAfN3wwfSj6h3jbuiwiIoex7dApaJsNCPNVYHCoj63LsSqGK6LLoDcY8eavR/DBH/kAgFG9/PCfv8XB193VxpURETmWH/aVAQAmDwrudFdUM1wRXaK6phY8vjYbfxw1zckyZ0wUnpnYB86d4D5YREQdqVbbjN+Pms5V7Yx3rWC4IroExdVazP5kL46daoCbixPe/OtA3DZQaeuyiIgc0uaD5WgxCPQN8kR0J7yBPcMV0UVkFlbj4c8yUaVpRqCXDB/PjOf5VUREV+GHHNMhwdsHd84/UhmuiC7gu+xSLPhmP5oNRsQqvfDxzHgEeXeeuViIiDpaRV0TUvKrAACTO+kRAIYronYIIbBy2zH8+8zEoDfFBOLtewZD4cr/MkREV2PTfhWEAOLCfBDqq7B1OdcEPymIztHUYsDTX+dg037TjZfnjI3Cwol9IZV2rqtZiIhs4Yd9pQA654nsrRiuiM5yul6Hhz7LwL7iWjhLJXh16gDcFR9q67KIiDqFg6Vq5JSo4SyVYNKAzjVx6NkYrojOOFxeh6RPMlBa2whvNxf89/6huK5n57mRKBGRrX26pwAAcMuAYAR4ymxbzDXEcEUEYOfhU3h8bRY0zQZE+rvj45nDEBXgYeuyiIg6jWpNM74/c5XgrJHhNq7m2mK4oi5NCIFP9hTgpU15MAogIcoX/71/KHwUnHGdiMia1qUXoVlvxIAQb8SFdbN1OdcUwxV1WUajwEs/5WH17gIAwF3DeuDlKQPg6swZ14mIrElvMOLz1EIAwMyREZ3udjfnYriiLkmnN+Dpr/fjxzO7qBfd0hdzxkR1+v/wRES2sCWvAip1E/zcXXHbwM57Insrq/+J3tTUhKSkJPj4+CA4OBjLly8/b9/s7GyMGDECCoUC8fHxyMzMtGhft24devbsCYVCgalTp6KystLcJoTAokWLEBAQAF9fXyxYsABGo9HcfvjwYdx0003w8vJCZGQkXn31VYv2O+64AxKJxOKxadMmK74TZK8adHokfZKBH3PK4CyV4J17BuORsT0ZrIiIrpFPzpzI/rfhYZC7ONm2mA5g9XD1zDPPICMjAzt27MB7772HF154Ad98802bfhqNBpMmTcLo0aORmZmJkSNH4tZbb4VGowEApKenIykpCUuWLEFqaipqamowa9Ys8/NXrFiBtWvXYuPGjdiwYQO++OILrFixAgCg1WoxadIkhISEYO/evfi///s/vP3223j//ffNz8/Ly8Pnn38OlUplftx4443WfjvIzpyu1+GeD1OQfLwSClcn/G9WfKeea4WIyNbyyuqQfrIaTlIJ7k/o3CeymwkramhoEHK5XOzcudO87KWXXhJjx45t0/fjjz8WkZGRwmg0CiGEMBqNolevXmL16tVCCCGmT58uZs6cae5fVFQkJBKJyM/PF0IIERoaau4rhBBr1qwR4eHhQgghfvnlF+Ht7S2amprM7a+++qoYOXKkEEKIpqYm4eTkJI4cOXJF41Sr1QKAUKvVV/R8so2CygYx5o0dInzhJjHkxS1iX1GNrUsiIur0FnydI8IXbhKPfZFp61I67PPbqnuucnJy0NLSgpEjR5qXJSYmIi0tzeKQHACkpqYiMTHRfChGIpFg1KhRSElJMbePGTPG3D80NBRhYWFITU1FWVkZiouLLdoTExNRWFgIlUqFwYMH47vvvoNMZjmHhlqtBgAcOXIEEokEUVFR1hw+2bGDpWrc+X4KCqu06NHNDd88ch0GhfrYuiwiok6tRtOM787MyP7AyAjbFtOBrBquVCoV/P394er652XsgYGBaGpqQlVVVZu+SqXlDRsDAwNRUlJy0XaVynRbkrPbAwMDAQAlJSUICgrCuHHjzG2NjY346KOPMH78eADAoUOH4O3tjenTpyM4OBjDhw/HL7/8ct5x6XQ61NXVWTzIcew5Xol7PkxFZYMO/YK98O2jIzmHFRFRB1i9+yR0etON74eGd+7pF85m1XCl1Wrb7C1q/V6n011S39Z+F2rXarUW677Q6xiNRsyaNQv19fVYvHgxANPJ7lqtFhMnTsTmzZsxadIkTJ48GRkZGe2Oa9myZfD29jY/QkN5OxRHsWl/GWat3osGnR4JUb74ck4CunvJbV0WEVGnV6ttxv/OTHXz+PW9utRFQ1adikEul7cJN63fKxSKS+rb2u9C7XK53Pz92V+f+zp6vR4zZ87Epk2bsHXrVgQFBQEAnn/+ecydOxfduplS9KBBg5CZmYkPP/wQw4YNazOuxYsXY/78+ebv6+rqGLAcwKd7CrD0x1wIAUwaEIQVdw3uElepEBHZg1W7TqJBp0ffIE9MjA2ydTkdyqrhKiQkBJWVldDr9XB2Nq26vLwcbm5u8PHxadO3vLzcYll5eTmCg4Mv2h4SEmL+PiIiwvw1APPzW1pacPfdd2PLli34+eefLc4Dk0ql5mDVql+/fsjNzW13XDKZrM1eNLJfQggs33IU7+48DgCYnhCOpbfHwknadf5qIiKypRpNs3n6hacm9Ia0i/3+tephwcGDB8PFxQWpqanmZcnJyYiPj4dUavlSCQkJ2LNnD4QQAEwfiLt370ZCQoK5PTk52dy/uLgYxcXFSEhIgFKpRFhYmEV7cnIywsLCzOHq4YcfxtatW7F582aMHTvW4rVnzZqF2bNnWyzbt28f+vbta4V3gWzJaBR4duNBc7Caf2M0XryDwYqIqCOtSs5Hg06PfsFeuCmma+21AmDdqRiEEGLOnDkiNjZWpKeni40bNwovLy+xYcMGIYQQKpVKaLVaIYTpcsiAgAAxd+5ckZubK+bOnSuCgoJEQ0ODEEKIPXv2CFdXV7Fq1SqRk5Mjxo0bJyZPnmx+nWXLlgmlUil27twpdu7cKZRKpVi+fLkQQogtW7YIAOKDDz4QKpXK/Dh16pQQQogNGzYIFxcX8emnn4pjx46JF154Qbi5uYmTJ09e0hg5FYN9atEbxLz12SJ84SYRuWiTWJtWaOuSiIi6nKoGnYh5/hcRvnCT2HxQZetyLHTU57fVw5VGoxEzZswQ7u7uQqlUipUrV/75YoDF3FRpaWliyJAhQi6Xi+HDh4usrCyLda1evVqEhoYKd3d3MXXqVFFZWWlu0+v1Yt68ecLHx0f4+/uLhQsXmufMmjNnjgDQ5tE6D5YQQnz00Ueid+/eQiaTibi4OPH7779f8hgZruxPs94g/v5FpghfuElELf5J/LCv1NYlERF1Sa//ckiEL9wkbnn7D/Pnsr3oqM9viRBnjsvRJaurq4O3tzfUajW8vLxsXU6Xp9Mb8MTabGzJq4CLkwT/+Vscbu7fBXdDExHZWLWmGaNf3wFNswEfTh+Km+zsRPaO+vzmjZvJoTW1GPDo55nYeeQ0XJ2l+O/9cbihb6CtyyIi6pI+/CMfmmYD+od44caYrvu7mOGKHFZjswEPfZaB5OOVkLtI8dGMYRjdO8DWZRERdUlVDTp8llIAAHhqfHSXmtfqXAxX5JAadHrM/mQv0k9Wm2/AnBDlZ+uyiIi6rP/beQLaZgMGhHhjfL/uti7HphiuyOHUNbVg1v/SkVVUC0+ZMz6ZHY+h4b62LouIqMs6fqrBvNfqmYl9uvReK4DhihxMrbYZM/6Xjv0lani7uWBN0nAM7OFj67KIiLq0V37Kg94oML5vd4yJ5ukZDFfkMKoadLj/43QcUtXB190Va5KGI1bpbeuyiIi6tJ1HTmHnkdNwcZLgn7f2s3U5doHhihzCqfom3PdRGo6daoC/hwxrHxqB6EBPW5dFRNSltRiMeHlTHgBg1sgIRAV42Lgi+8BwRXavWtOM+1eZglWQlxxrHxrB/8BERHZgTUohTpzWwM/dFU+M723rcuwGwxXZNXVjC6Z/nIajFQ0I9JLhyzkJCPdzt3VZRERdXrWmGW9vOwoAeHpiH3jJXWxckf2w6o2biaypQafHrNXpyC2rg7+HK754kMGKiMherNh6BHVNppsz3zUs1Nbl2BWGK7JLjc0GPPjpXmQX1Z65KnAEenXnoUAiIntwuLwOa9OKAABLJsfASdq1p144F8MV2R2d3oA5n2ciNb8anjJnrEkajn7BvIcjEZE9EELgxR/zYBTApAFBnMC5HQxXZFdaDEY8vjYbfxw9DTcXJ6x+IJ7zWBER2ZFfcyuw50QVXJ2lWHwLp15oD8MV2Q2DUWD+VznYmlcBV2cpPp45DMMiOPM6EZG9qGtqwZIfDgIAHh4dhVBfhY0rsk8MV2QXjEaBhRv248ecMrg4SfDB/UMxspe/rcsiIqKzLPv5MCrqdIj0d8fjN/SydTl2i+GKbE4IgSU/5OKbzBI4SSX49z1DcH3frn3TTyIie5OaX4V16aaT2Jf9ZQDkLk42rsh+MVyRTQkhsOyXw1iTWgiJBFj+10G4ZUCwrcsiIqKzNLUYsGjDfgDAvSPCeBL7RTBckU29u+M4PvwjHwCwbOoATBkSYuOKiIjoXCu3HUVBlRaBXjIsuqWvrcuxewxXZDNf7S3G8q2m2X2XTI7BPcPDbFwRERGd62CpGqt2nQQAvDJlAGdivwQMV2QTOw+fwuKNBwAAj1/fCw+MirRxRUREdK4WgxELvtkPg1HgtoHBmBATaOuSHALDFXW4nOJaPPZFFgxGgTvjeuAfN0XbuiQiImrHh3/kI09VBx+FC5beHmvrchwGwxV1qMIqDWZ/sheNLQaMiQ7Aa3cOgETC2yYQEdmbE6cb8M72YwCAf90WA38PmY0rchwMV9RhKht0mPG/dFRpmtE/xAvv3RcHFyf+CBIR2RujUWDRhv1o1hsxJjoAU3mx0WXhJxt1CG2zHkmf7EVhlRY9urnhf7Pi4SFztnVZRETUjk/2FGBvQQ0Urk54dWp/HmG4TAxXdM3pDUb8/Yss5JSo0U3hgk9nD0d3T7mtyyIionYcUtXhtV8OAwAWT+qHHt14i5vLxXBF15QQAs99dxA7j5yGzFmKVTPj0TPAw9ZlERFRO5paDJi7LhvNBiMm9OuO+0dwipwrwXBF19Q7249h/d5iSCXAf/42BEPDu9m6JCIiOo9XfjqEY6caEOApw+t3DuThwCvEcEXXzPr0Iry9zXSlyUtT+uOm2CAbV0REROezLa8Ca1ILAZhuRebHqwOvGMMVXRN7jlfin98dBGCaJPS+EeE2roiIiM7nVF0TFpy5d+CDiZEYEx1g44ocG8MVWV1hlQaPrTVNEjplsJKThBIR2TGjUeAfX+egWtOMmGAvPHNzH1uX5PAYrsiq6pta8OCnGajVtmBQqA9e4zF7IiK79r/dJ7HrWCXkLlL8+2+DIXN2snVJDo/hiqzGaBSY9+U+HDvVgO6eMnw4fSjkLvxPSkRkrw6WqvH6ZtO0C8/fFoNe3T1tXFHnwHBFVrN86xFsO3QKrs5SfDhjGAK9OJcVEZG9amw24Mn12WgxCNwYE4h7h3PaBWthuCKr+H5fKf5v5wkAwOt3DsDgUB/bFkRERBf04qY8nDitQXdOu2B1Vg9XTU1NSEpKgo+PD4KDg7F8+fLz9s3OzsaIESOgUCgQHx+PzMxMi/Z169ahZ8+eUCgUmDp1KiorK81tQggsWrQIAQEB8PX1xYIFC2A0Gs3tVVVVuPPOO+Hp6YnIyEh8/vnnl/XadOkOlKix4BvTVSZzxkZh6pAeNq6IiIgu5NusEqxLL4JEAqy8ezB83V1tXVKnYvVw9cwzzyAjIwM7duzAe++9hxdeeAHffPNNm34ajQaTJk3C6NGjkZmZiZEjR+LWW2+FRqMBAKSnpyMpKQlLlixBamoqampqMGvWLPPzV6xYgbVr12Ljxo3YsGEDvvjiC6xYscLcPmvWLKjVaqSkpOC5557Dgw8+iPT09Et6bbp0p+qb8PCaDOj0RlzfJwALJva1dUlERHQBuWVqLP72AADgiet7YVQvfxtX1AkJK2poaBByuVzs3LnTvOyll14SY8eObdP3448/FpGRkcJoNAohhDAajaJXr15i9erVQgghpk+fLmbOnGnuX1RUJCQSicjPzxdCCBEaGmruK4QQa9asEeHh4UIIIY4fPy4AiJMnT5rbk5KSzOu72GtfjFqtFgCEWq2+pP6dVVOLXkz9v2QRvnCTuOGtnULd2GzrkoiI6AJqNDqR+Pp2Eb5wk5jxcZrQG4y2LqlDddTnt1X3XOXk5KClpQUjR440L0tMTERaWprFITsASE1NRWJiovkYr0QiwahRo5CSkmJuHzNmjLl/aGgowsLCkJqairKyMhQXF1u0JyYmorCwECqVCmlpaQgNDUVERIRF+9nrvtBr08UJIfDPjQeRVVQLL7kzPpoxDF5yF1uXRURE52E0Cjz15T4UVzci1NcN79wzGE5Snmd1LVg1XKlUKvj7+8PV9c9jt4GBgWhqakJVVVWbvkql0mJZYGAgSkpKLtquUqkAwKI9MDAQAMztV7puujSrdxfgm8wSSCXAu/fGIYo3YyYismtvbz+G346chsxZivfvGwofBc+zulacrbkyrVYLmczyXkSt3+t0ukvq29rvQu1ardZi3ee+ztWsuz06nc6ira6urt1+XUVmYQ1e/fkQAODZSf14mwQiIju3/VAF/r3ddK/XV6cOQP8QbxtX1LlZdc+VXC5vE1Bav1coFJfUt7XfhdrlcrnFus99natZd3uWLVsGb29v8yM0NPQ870DnV6NpxhNrs6A3CkwepERSYqStSyIiogsorNJg3pf7AADTE8Jx51Be0X2tWTVchYSEoLKyEnq93rysvLwcbm5u8PHxadO3vLzcYll5eTmCg4Mv2h4SEmL+/uw2AOb2K113exYvXgy1Wm1+FBcXX/B96Kxa7z9Vpm5CpL87Xp3an/OiEBHZscZmA+asyURdkx5xYT54/rYYW5fUJVg1XA0ePBguLi5ITU01L0tOTkZ8fDykUsuXSkhIwJ49eyCEAGA6QXr37t1ISEgwtycnJ5v7FxcXo7i4GAkJCVAqlQgLC7NoT05ORlhYGIKDg5GQkIDCwkKLc6iSk5Mt1n2h1z6XTCaDl5eXxaMrWpWcjx2HTTOwv3vvEHjyBHYiIrslhMDib/fjcHk9/D1c8d59Q+HqzLnDO4S1Lz+cM2eOiI2NFenp6WLjxo3Cy8tLbNiwQQghhEqlElqtVghhuhwyICBAzJ07V+Tm5oq5c+eKoKAg0dDQIIQQYs+ePcLV1VWsWrVK5OTkiHHjxonJkyebX2fZsmVCqVSKnTt3ip07dwqlUimWL19ubp84caIYN26cyMnJEatWrRJyuVykpaVd0mtfTFeciiGjoEpELf5JhC/cJD5PLbB1OUREdBGrk/NF+MJNImrxTyLlRKWty7ELHfX5bfVwpdFoxIwZM4S7u7tQKpVi5cqVf74YYDGXVFpamhgyZIiQy+Vi+PDhIisry2Jdq1evFqGhocLd3V1MnTpVVFb++cOh1+vFvHnzhI+Pj/D39xcLFy40z1slhBAVFRVi8uTJQi6Xi8jISLF27VqLdV/stS+kq4Wr6gaduO7VbSJ84Sbx+Nosi/eZiIjsT8qJStHzzB/EH/1xwtbl2I2O+vyWCHHm2Bhdsrq6Onh7e0OtVnf6Q4RGo8CDn2Vgx+FTiPR3xw+Pj+LhQCIiO5Z/ugFT39sDdWMLJg9S4t/3DOb5sWd01Oc3D77SBX20i+dZERE5impNM2Z/shfqxhYMDvXBm9N4Q2ZbYLii88osrMYbvx4BACyZHINYJedFISKyVzq9AY+syURBlRY9urnhoxnDIHdxsnVZXRLDFbWrRtOMx9dmw2AUuH2QEvcOD7N1SUREdB5CCCzacADpBdXwlDnjf7PiEeApu/gT6ZpguKI2hBB45pscqFrns/rLAO5WJiKyY//efhwbs0vhJJXgvfvjEB3oaeuSujSGK2rj64wSbDt0Cq5OpvOsPGRWvUsSERFZ0ff7SrFy21EAwEt39Mfo3rwlma0xXJGFkhotXtyUBwCYf1M0z7MiIrJjGQXVeObr/QCAh8dE4d4RPIXDHjBckZnRKLDgm/1o0OkxNLwbHhodZeuSiIjoPAqrNHh4TSaaDUZMjA3Eopv72rokOoPhisw+SynAnhNVcHNxwvK/DoKTlOdZERHZI7W2BQ98shfVmmYM7OGNt+8eAil/Z9sNhisCYJp07rXNhwEAiyf1RYS/u40rIiKi9jTrjZjzeQbyT2ug9JZj1YxhcHPllAv2hOGKoDcY8Y+vc9DUYkRiL3/cPyLc1iUREVE7jEaBp7/OQWp+NTxkzvh4Vjy6e8ltXRadg+GK8OGufGQX1cJT5ow3pg3krmUiIjskhMDSH3PxQ04ZnKUSvHvvEPQL7ty3YHNUDFdd3CFVHVZuNV3Cu+T2WCh93GxcERERteftbcfwWUohJBJg+V2DMK5Pd1uXROfBcNWFNeuNmP9VDloMAhP6BeLOuBBbl0RERO1Yvfsk3tl+DADw4u2xuGMwf1/bM4arLuw/O47hkKoO3RQuWMZZ2ImI7NJ32aV44ccz8w/eGI3p10XYtiC6KIarLuqQqg7v/XYCAPDK1AG8BxURkR3acbgC//g6BwAwa2QEnrihl40rokvBcNUFGY0Cz313EAajwC39gzBpQLCtSyIionOkn6zGo59nwWAUmDokBP+6LYZHGBwEw1UX9E1mCTILa6BwdcK/JsfYuhwiIjpHbpkaSZ/shU5vxPi+3Xklt4NhuOpiajTNWPbLIQDAvAnRCPbm1YFERPakoFKDmf/bi3qdHsMjfPF/98XBxYkf146EW6uLeX3zYdRoW9A3yBOzRkXYuhwiIjpLRV0T7v84DZUNOvQL9sKqWcMgd+Hs646G4aoLySysxvq9xQCAl6f0519CRER2pFrTjBkfp6OkphERfgp8Nns4vOQuti6LrgA/XbsIvcGIf248CAC4a1gPDIvwtXFFRETUqkbTjPtWpeFIRT0CvWRYkzSCV3E7MIarLuKTPQU4XF4PH4ULFt3Sz9blEBHRGa3B6pCqDv4eMnzxYAJCfRW2LouuAsNVF1CubjLf4mbhzX3h6+5q44qIiAgAarXNuP/jNOSdCVbrHx6BXt09bF0WXSWGqy7gpU150DQbMCTMB3cPC7V1OUREBFOwum9VGnLL6uDv4Yp1D41Ar+6eti6LrIDhqpPbdew0fjqgglRiOomd86QQEdle6x6rP4NVAnoHMlh1FgxXnZjRKPDqz4cBADOui0Cs0tvGFRERkVrbgukfp+NgaR383F2xlsGq02G46sR+yCnDIVUdPGXOeHJ8b1uXQ0TU5akbWzD9f2k4UKo2B6toBqtOh+Gqk9LpDXhryxEAwCPjeqIbT2InIrIpdWMLpn+chv0lavieCVZ9ghisOiOGq07qi9QilNQ0orunDLNHRdq6HCKiLk3d2IIZFsFqBINVJ8Zw1QnVNbXgPzuOAQDm3RgNN1feOoGIyFbqmlow43/pyClRo5vCBV88OAJ9g7xsXRZdQ862LoCs76M/8lGjbUFUgDv+OrSHrcshIuqyqjXNmPm/dBwobQ1WCegXzGDV2TFcdTKn6pqwatdJAMCCiX3hzPsHEhHZRLnadBPm46ca4OvuijVJwxGjZLDqChiuOpl3th9DY4tpwtCJsYG2LoeIqEsqqNTg/o/TUFLTiGBvOdYkceb1roThqhPJP92A9XuLAQCLbu4LiYQThhIRdbTD5XWY/nE6TtfrEOnvjjVJw9GjG+8V2JUwXHUib205AoNRYHzf7hgR5WfrcoiIupysoho8sHov1I0t6BvkiTVJIxDgKbN1WdTBrHpCjhACixYtQkBAAHx9fbFgwQIYjcbz9j958iQmTJgAd3d3xMTEYMuWLRbt27ZtQ//+/aFQKHDDDTcgPz/fov3tt99GSEgIPD09kZSUBK1Wa24rLS3FtGnT4Ovri5CQEMyfPx9NTU3m9ieffBISicTi8e6771rpneh4h1R1+PlAOSQSYMHNfW1dDhFRl7P7eCXuX5UGdWML4sJ88OXD1zFYdVFWDVcrVqzA2rVrsXHjRmzYsAFffPEFVqxY0W5fIQSmTJmCoKAgZGRkYPr06Zg6dSqKiooAAEVFRZgyZQoeeOAB7N27FwEBAZgyZQqEEACADRs2YOnSpfjggw+wY8cOpKamYsGCBeZ1T5s2DVqtFrt27cL69evx448/4vnnnze/fl5eHpYtWwaVSmV+zJ4925pvR4f64PcTAIBJA4I5dwoRUQf7NbccD6zeC22zAaN7++PzB0fAW+Fi67LIVoQVhYaGitWrV5u/X7NmjQgPD2+37/bt24W7u7toaGgwLxs/frxYsmSJEEKI559/XowdO9bcptFohKenp9i5c6cQQojRo0eb+wohxK5du4Sbm5vQaDTi0KFDAoAoLy83t69du1YolUrz9yEhIeLXX3+9onGq1WoBQKjV6it6vrUVVWlE1OKfRPjCTeJASa2tyyEi6lI2ZBabfwfP+SxDNLXobV0SnUdHfX5bbc9VWVkZiouLMWbMGPOyxMREFBYWQqVStemfmpqKuLg4uLu7W/RPSUkxt5+9LoVCgbi4OKSkpMBgMGDv3r0W7QkJCWhubkZOTg6CgoKwefNmBAZaXi2nVqsBAHV1dSgtLUV0dLR1Bm9jq3blw2AUSOzlj/4hvDkzEVFH+XRPAeZ/lQODUWDa0B54994hkDlz4uauzmrhqjVAKZVK87LWcFNSUtJu/7P7tvZv7Xuh9traWjQ1NVm0Ozs7w8/PDyUlJfDx8cHEiRPNbUajEe+++y7Gjx8PADh06BAkEgleeeUV9OjRA4MGDcKnn3563rHpdDrU1dVZPOxFVYMOX2aYrhB8ZGxPG1dDRNQ1CCHw7o5jWPJDLgDggVEReOPOgZxbkABc5tWCjY2NKC0tbbetoaEBACCT/XnyXuvXOp2uTX+tVmvRt7V/a98LtbeeuH6h559twYIFyMrKwt69ewEAhw8fhkQiQd++ffHEE0/g999/x8MPPwwvLy9MnTq1zfOXLVuGF154od1x29qnKYVoajFiQIg3RvXiFYJERNea0Sjw8k+H8L/dpgmbn5rQG0+O783pb8jsssJVWloarr/++nbb3njjDQCmICWXy81fA6ZDeueSy+WoqqqyWKbT6cx95XJ5m6Ck0+ng4+PTZv3tPb/VwoUL8fbbb+PLL79E//79AQAzZszA5MmT4evrCwAYOHAgjh49ivfff7/dcLV48WLMnz/f/H1dXR1CQ0PbfR86krZZj89SCgCY9lrxPzYR0bXV1GLAU+v3YXNuOQDg+dtikJQYaeOqyN5c1v7LcePGQQjR7uO+++4DAJSXl5v7t34dHBzcZl0hISEWfVv7t/a9ULufnx/kcrlFu16vR1VVlcVrPfHEE1i+fDk+//xz3HnnneblEonEHKxa9evX77x75WQyGby8vCwe9mB9ejFqtS2I8FPg5v5Bti6HiKhTq2rQ4d6PUrE5txyuTlL8+29DGKyoXVY7OKxUKhEWFobk5GTzsuTkZISFhbUbrhISEpCVlYXGxkaL/gkJCeb2s9el1WqRnZ2NhIQESKVSxMfHW7SnpKTAxcUFgwYNAgC88MIL+O9//4v169fjnnvusXjtf/3rX5gwYYLFsn379qFvX8eZH6rFYMSqXaZ5vx4aEwUnKfdaERFdKwWVGtz5/h5kFdXC280Fa5KG4/ZByos/kboma156uGzZMqFUKsXOnTvFzp07hVKpFMuXLze3nzp1StTX1wshhNDr9SImJkbcfffd4uDBg2LZsmXCw8NDFBYWCiGEOHnypJDL5WLZsmXi4MGD4q677hIDBw4URqNRCCHEunXrhJeXl9i4caNIT08XsbGx4oknnhBCCJGXlyecnJzEc889J1QqlcVDCCHS09OFs7OzePPNN8Xx48fFe++9J2QymdizZ88ljdMepmL4JqNYhC/cJIa+tFU0NvOyXyKiayWjoFoMeXGLCF+4SYx6bbs4VlFn65LoCnXU57dVw5Verxfz5s0TPj4+wt/fXyxcuNAchoQQIjw83GJuqmPHjokxY8YImUwmYmNjxdatWy3W9/PPP4vo6Gjh5uYmxo8fL/Lz8y3aly1bJrp37y68vb3F7NmzRWNjo3k5gHYfrb777jsxcOBAIZfLRd++fcWGDRsueZy2DldGo1Hc/PYfInzhJvHujmM2qYGIqCv45UCZiP7nzyJ84SZx2793iYq6RluXRFehoz6/JUKcmfKcLlldXR28vb2hVqttcv5VTnEt7vi/3XB1liL92fHwUbh2eA1ERJ3dx8kn8fJPeRACGN+3O/5z7xAoXHlLXkfWUZ/f/ClxQOv3mua1mtQ/iMGKiMjKDEaBl3/Kw+rdBQCA+xPCsHRyLOewokvGcOVgtM16/JhTBgC4K97200EQEXUmTS0GPLk+G7/mVgAAFt3SF3PGRHGqG7osDFcO5qf9KjTo9Aj3UyAhkpOGEhFZS1WDDg9+loHsolq4Okmx/K5BmMwrAukKMFw5mK/O3OrmrmGhkHL6BSIiqzh+qgFJn+5FYZUW3m4u+GjGMAyP9L34E4nawXDlQI6fasDeghpIJcC0oT1sXQ4RUaew8/ApzF2XjXqdHj26ueGTB4ajV3cPW5dFDozhyoF8fWav1Q19uyPQS27jaoiIHJsQAh/8kY/XNx+GEMDwCF+8d38c/D1kF38y0QUwXDmIFoMRG7JKAJgOCRIR0ZVrajFg0Yb9+G6f6QKhvw0Pwwu3x8LVmVcE0tVjuHIQ2w+dQmVDMwI8Zbi+b3dbl0NE5LDK1U14eE0G9peo4SSVYOnkGNyfEM4rAslqGK4cxDeZpkOCd8b1gAvnWiEiuiLZRTV4eE0mTtfr4KNwwXv3xmFkL39bl0WdDMOVA9Do9PjjWCUAYMoQXhZMRHQlNmSWYPHGA2jWG9En0BMfzRiGMD+FrcuiTojhygHsOnYazXojQn3d0CfQ09blEBE5FL3BiNd+OYxVyScBADfFBGLF3YPhIeNHIF0b/MlyAFvyTDMF39gviOcEEBFdBrW2BU+sz8YfR08DAObe0AtPTYjmPIF0TTFc2Tm9wYgdh08BAG6KDbRxNUREjuP3o6fx7LcHUFrbCLmLFMv/Ohi3Dgy2dVnUBTBc2bmMwhrUalvgo3DBsPButi6HiMghPPfdAXyeWgQAUHrL8eGMYegf4m3jqqirYLiyc1vPHBK8oW933pGdiOgi9AYj3txyxBysAODrR0cixMfNhlVRV8NwZceEEOZwdVMMDwkSEV3IqbomPL4uG+knqwEAUQHu2PREIhSu/KijjsWfODt2tKIBRdVauDpLMbp3gK3LISKyWyknqvDEumxUNujgIXPGG9MGYtIAnl9FtsFwZce25pUDABJ7+cOdlwwTEbVhNJruD/jmr4dhFEDfIE+8d18cogJ442WyHX5i27HfjpguHZ7Qj4cEiYjOpda24B9f78O2Q6Yrqv8SF4JXpgyAm6uTjSujro7hyk41643YX6oGACRE+dq4GiIi+3KgRI1Hv8hESU0jXJ2leOH2WNwTH8q5AMkuMFzZqdwyNZr1RnRTuCDS393W5RAR2QUhBNamF+GFH/LQbDDdueL9+4ZymgWyKwxXdiqrqBYAEBfWjX+JEREB0Dbr8dzGg/g2uxSA6ZSJ5X8dBG+Fi40rI7LEcGWnsgprAABxnDiUiAgnTjfg0c8zcbSiAU5SCZ6Z2AdzxkTxj0+ySwxXdiqr6Ey4CmO4IqKuSwiBrzNKsOSHXDS2GBDgKcN//jYECVF+ti6N6LwYruxQWW0jVOomOEklGBTK8wiIqGtSa1vw7MYD+OmACgBwXZQf3rlnMLp7yW1cGdGFMVzZoda9Vn2DPDmzMBF1SWn5VZj35T6UqZvgLJXgHzf1wcNjouAk5WFAsn/85LZDWYW1AHhIkIi6nhaDEf/efgz/t/M4jAKI8FPgnXuGYFCoj61LI7pkDFd2qHXP1VCezE5EXUhRlRZPfpmN7DNXS08b2gNLb4+FB+9QQQ6GP7F2RgiB46caAACxSi8bV0NE1DG+yy7Fc98dRINOD0+5M16ZOgC3D1LauiyiK8JwZWdqtC1o0OkBAKG+ChtXQ0R0bdU3teBf3+di45m5q4aFd8PKuwfz9x85NIYrO1NUrQUABHrJIHfh/bGIqPPKKqrBk+uzUVzdCKkEmDu+Nx6/vhecnaS2Lo3oqjBc2ZnWcBXGv9qIqJMyGAXe/+04Vm47BoNRIMTHDe/cMxjDIngfVeocGK7sTLE5XPF+gkTU+RRUavDMNznYW2C6cGfyICVentIf3m68hQ11HgxXdqaoinuuiKjzMRoF1qQW4rVfDqOxxQB3Vye8cEd/3BkXwlvYUKfDcGVnCqs1AIAwPzcbV0JEZB3F1Vo8800OUvOrAZhmWn9j2kCetE6dllXPGhRCYNGiRQgICICvry8WLFgAo9F43v4nT57EhAkT4O7ujpiYGGzZssWifdu2bejfvz8UCgVuuOEG5OfnW7S//fbbCAkJgaenJ5KSkqDVas1tGzduhEQisXhMmzbN3J6dnY0RI0ZAoVAgPj4emZmZVnoXrk5xdSMA7rkiIscnhMAXaYW4+e0/kJpfDTcXJ7x4Ryy+eHAEgxV1alYNVytWrMDatWuxceNGbNiwAV988QVWrFjRbl8hBKZMmYKgoCBkZGRg+vTpmDp1KoqKigAARUVFmDJlCh544AHs3bsXAQEBmDJlCoQQAIANGzZg6dKl+OCDD7Bjxw6kpqZiwYIF5vXn5eVh8uTJUKlU5seqVasAABqNBpMmTcLo0aORmZmJkSNH4tZbb4VGo7Hm23HZmvVGlKlN4Yq/eIjIkZXWNmLG/9Lxz40HoWk2YHiELzY/NRozrouAlLewoc5OWFFoaKhYvXq1+fs1a9aI8PDwdvtu375duLu7i4aGBvOy8ePHiyVLlgghhHj++efF2LFjzW0ajUZ4enqKnTt3CiGEGD16tLmvEELs2rVLuLm5CY1GI4QQ4r777hOLFy9u97U//vhjERkZKYxGoxBCCKPRKHr16mVR+4Wo1WoBQKjV6kvqf6nK1Y0ifOEmEblok7k2IiJHYjQaxZfpRaL/vzaL8IWbRPQ/fxarduULg4G/08j2rtXn97mstueqrKwMxcXFGDNmjHlZYmIiCgsLoVKp2vRPTU1FXFwc3N3dLfqnpKSY289el0KhQFxcHFJSUmAwGLB3716L9oSEBDQ3NyMnJweAac9VdHR0u7WmpqYiMTHRfBKlRCLBqFGjzK9tK43NBgCA3MWJJ3gSkcMpVzfhgU/2YsGG/ajX6REX5oNfnhyNpMRI7q2iLsVq4ao1QCmVf96uIDAwEABQUlLSbv+z+7b2b+17ofba2lo0NTVZtDs7O8PPzw8lJSUQQuDIkSP49ddfER0djZ49e2LRokVobm6+pNc+l06nQ11dncXjWmjSm8KVGycPJSIHIoTAhswS3Ljyd/x25DRcnaV4dlJffP3ISEQFeNi6PKIOd1lXCzY2NqK0tLTdtoYG0/3wZDKZeVnr1zqdrk1/rVZr0be1f2vfC7W3nrh+vvaioiLz87/66iucPHkSc+fORWNjI955552Lvva5li1bhhdeeKHdNmtqajGd/M+Z2YnIUZyqb8Kz3x7EtkMVAIBBPbzx1l8HoXegp40rI7KdywpXaWlpuP7669tte+ONNwCYgpRcLjd/DZgO6Z1LLpejqqrKYplOpzP3lcvlbcKOTqeDj49Pm/Wf+/zw8HBUVVWhW7dukEgkGDx4MIxGI+6//36sWLHivOtur04AWLx4MebPn2/+vq6uDqGhoe32vRpNLaY9VzIX3vqBiOybEAJfZ5TglZ8PQd3YAhcnCZ6aEI05Y6J4+xrq8i7rf8C4ceMghGj3cd999wEAysvLzf1bvw4ODm6zrpCQEIu+rf1b+16o3c/PD3K53KJdr9ejqqrK/HxfX1+L85b69euHpqYmVFdXX/S1zyWTyeDl5WXxuBZaw5XcmXuuiMh+nTjdgHs+TMWCDfuhbmxBrNILPz6RiL/zvoBEAKx4zpVSqURYWBiSk5PNy5KTkxEWFtZuaElISEBWVhYaGxst+ickJJjbz16XVqtFdnY2EhISIJVKER8fb9GekpICFxcXDBo0CL/++iv8/Pws5r3at28f/Pz8EBAQgISEBOzZs8c8rYMQArt37za/tq38eViQv5yIyP7o9Aa8s+0Ybnl7F9JOmuatenZSX3z/91HoG3Rt/ugkckRW/RR/9NFHsXDhQvz222/47bffsGjRIjz55JPm9tOnT5vPzRo7dixCQ0PxwAMPIDc3F6+99hrS09ORlJQEAJg9ezZ2796N1157Dbm5uXjggQcQGRmJcePGAQAee+wxvPnmm/juu++wd+9ePProo3jooYegUCgwcuRIuLm54cEHH8SRI0fwyy+/4JlnnjHPgzVt2jTU1tbiqaeeQl5eHp566iloNBrcdddd1nw7LptO/+fVgkRE9iT9ZDUmvbMLK7cdRbPBiHF9ArBl3hg8PKYn91YRncua8zro9Xoxb9484ePjI/z9/cXChQst5msKDw+3mJvq2LFjYsyYMUImk4nY2FixdetWi/X9/PPPIjo6Wri5uYnx48eL/Px8i/Zly5aJ7t27C29vbzF79mzR2Nhobjt48KCYMGGC8PDwEMHBwWLp0qUWtaSlpYkhQ4YIuVwuhg8fLrKysi55nNdqnoz16YUifOEm8cDqdKuul4joStVqmsXCb3JE+MJNInzhJjH0pa3ih32lnIuPHFJHzXMlEeLMsTG6ZHV1dfD29oZarbbq+VffZpVg/lc5GN3bH2uSRlhtvUREl0sIgR/3q/Dij3mobDBdAPS34aFYdHM/eCtcbFwd0ZW5Vp/f5+KNm+2Iz5lfWLXaFhtXQkRdWXG1Fs99dxC/Hz0NAOjV3QOvTh2A4ZG+Nq6MyDEwXNkRbzdXAEBtY7ONKyGirkhvMOLj5JNYue0omlqMcHWS4vEbemHO2CjIeBUz0SVjuLIj3bjniohsZF9xLZ799gDyVKY7UCRE+eKVqQPQkzOsE102his74qMw7bmqb9JDbzDyChwiuuZO1+vwxubD+DrTdPsvH4ULnp3UD38d2oP3OCW6QgxXdsRL/ufmUDe2wM9DdoHeRERXrsVgxKd7CvDOtmOo1+kBAH+JC8Gzk/rBn797iK4Kw5UdcXaSwlPujPomPWoZrojoGtl9vBJLf8jFsVOmeQcHhHhj6e2xGBrezcaVEXUODFd2xkfhYgpXPO+KiKysuFqLV346hM25ptt/+bm7YsHNffDXoaGQSnkIkMhaGK7sjL+HDMXVjVCpGwHwr0giunpNLQa8/9sJ/Pf3E9DpjXCSSjA9IRzzboyGtxvnrCKyNoYrO9M3yBPZRbU4pKrDbQOVti6HiByYEAKbD5bj5Z8OobTWdB/X66L8sPT2WPQJ8rRxdUSdF8OVnYkJNs0Ym1dWZ+NKiMiRHauox9Ifc7H7eBUAIMTHDf+8tR9u6R/EqwCJrjGGKzsTozwTrlQMV0R0+dSNLXhn2zF8mlIAg1HA1VmKR8b2xKNje8LNlROBEnUEhis70yfICxIJUFGnQ2WDjpdEE9El0ekN+Dy1CP/Zccx8QcxNMYF4/rYYhPoqbFwdUdfCcGVnPGTOiPBzx8lKDfLK6jAmOsDWJRGRHTMaBX46oMIbvx5GcbXpvKre3T3w/G0x/P1BZCMMV3YoRullClcqhisiOr/U/Cos+/kQckrUAIDunjL846Zo3BnXg3d4ILIhhis7FBPshZ/2q5DLk9qJqB1HK+rx+i+Hsf3wKQCAu6sTHhnbE0mjI6Fw5a91Ilvj/0I7NLCHNwAgLb8KRqPg5H5EBACoqGvCyq1H8VVGMYwCcJZKcO+IMMwd35vnZxLZEYYrOzQ80heeMmecqtchu7iWt6Qg6uIadHp8+PsJfLTrJBpbDACAm2ODsODmPogK8LBxdUR0LoYrOyRzdsIN/brj+31l+DW3nOGKqItqMRixPr0Ib287hipNMwAgLswH/7y1H4aG+9q4OiI6H4YrO3VzbBC+31eGzQfLsfiWvpz0j6gLMRoFfjlYjuVbjiC/UgMAiPR3x8Kb+2BiLCcBJbJ3DFd2amyfAMicpSiq1uKQqt48uSgRdV5CCPyaW4G3tx3F4fJ6AKabKz81oTfuGR4GF14BSOQQGK7slMLVGWOjA7AlrwKbc8sZrog6MSEEdhw+hRVbj5qvEvaUOWN2YiQeHB0JTzlvrkzkSBiu7NjN/YOwJa8Cvx4sx/wbo21dDhFZmRACvx89jZVbj5rnqnJ3dcIDo0yhykfhauMKiehKMFzZsfF9A+EsleBIRT0Ol9ehbxD3XhF1BkII7D5ehRVbjyCrqBYA4ObihJkjI/DwmCj4ujNUETkyhis75q1wwY0xgfjlYDk+/D0fK+4ebOuSiOgqpeZXYcXWo0g/WQ0AkDlLMeO6cMwZ25NzVRF1EgxXdu7RcT3xy8FyfJ9Thvk3RaNHN96AlcgRZRRUY8XWo9hzogoA4Oosxb3Dw/DYuJ7o7iW3cXVEZE0MV3ZuYA8fJPbyR/LxSnz0Rz5euKO/rUsiosuQWViDt7cdxa5jlQAAFycJ7okPw2PX90Swt5uNqyOia4HhygE8Oq4nko9XYv3eYjzB21wQ2b3WE9Xf/+0E0s4c/nOWSvDXYaF4/IZeCPFhqCLqzBiuHMDInn4Y1MMbOSVqfLqnAP+4qY+tSyKidhiMAj8fUOH9304gT2WaUsHFSYKpQ0Lw+PW9EebHw/pEXQHDlQOQSCR4dFxPPPJ5Fj7dU4CHx0Rx3hsiO9LUYsCGrBJ8+Ec+Cqu0AACFqxPuHR6GpNGRPPxH1MUwXDmIm2KCEBXgjvzTGnz0Rz7mc+8Vkc3VN7Xgi7QifJx8EqfrdQCAbgoXzBoZiZkjwzlPFVEXxXDlIKRSCZ6+qQ8e+yIL7/9+ArcNUiI60NPWZRF1SafrdVi9+yTWpBaivkkPAFB6y/HQmCjcHR8KhSt/tRJ1ZfwN4EBu6R+ECf0Cse1QBRZ8sx8bHh0JJylv4ErUUYqrtfjwj3x8lVEMnd4IAOjV3QOPjO2JOwYree8/IgLAcOVQJBIJXp7SH2n5VdhXXItP9xRgdmKkrcsi6vT2Fdfif8kn8dMBFQxGAQAYHOqDx8b1xIR+gZDyjxwiOgvDlYMJ8pZj0aS++OfGg3jz1yO4MSYQob68AonI2pr1RvxyUIVP9hQg+8wtagBgTHQAHh3bEwlRvpBIGKqIqC2r7sMWQmDRokUICAiAr68vFixYAKPReN7+J0+exIQJE+Du7o6YmBhs2bLFon3btm3o378/FAoFbrjhBuTn51u0v/322wgJCYGnpyeSkpKg1Zqu0vnkk08gkUjaPKTSP4d7xx13tGnftGmTFd+Na+dv8WEYHumLxhYDnt14AEIIW5dE1GlUNujwn+3HkPj6Djy5fh+yi2rh6iTFX+JCsOmJRHw2eziu6+nHYEVE52XVcLVixQqsXbsWGzduxIYNG/DFF19gxYoV7fYVQmDKlCkICgpCRkYGpk+fjqlTp6KoqAgAUFRUhClTpuCBBx7A3r17ERAQgClTppiDxIYNG7B06VJ88MEH2LFjB1JTU7FgwQIAwN133w2VSmV+FBUVoVevXnjyySfNr5+Xl4fPP//cot+NN95ozbfjmpFKJXjtLwPg6izFrmOV+DqjxNYlETm8g6VqPP11Dka+tgPLtx7FqXodAjxlmDchGrsX3YAVdw1G/xBvW5dJRA5AIqy42yMsLAwvvvgiZs2aBQD4/PPP8dxzz6GgoKBN3x07duD2229HRUUF3N3dAQATJkxAYmIili5din/961/4448/8NtvvwEAtFotgoKC8MMPP2DcuHEYM2YMbrjhBixduhQAkJycjJtuugmVlZVQKCwPky1btgwff/wxcnNzIZPJoNPp4O7ujry8PERHR1/2OOvq6uDt7Q21Wg0vL6/Lfr61vPfbcbyx+QhcnaRY9/AIDA33tVktRI5IbzBiS14FVu8+ib0FNeblg0J9MHtUBG7pHwxXZ56kTtRZdNTnt9V+a5SVlaG4uBhjxowxL0tMTERhYSFUKlWb/qmpqYiLizMHq9b+KSkp5vaz16VQKBAXF4eUlBQYDAbs3bvXoj0hIQHNzc3IycmxeJ3q6mq8/vrreO211yCTmW4bc+TIEUgkEkRFRVln8DYyZ0xP3BQTiGaDEQ9/lomiM5MXEtGF1Wia8f5vJzDmjZ147Iss7C2ogbNUgtsHKbHxsZH4/u+jcMfgEAYrIroiVvvN0RqglEqleVlgYCAAoKSk7WErlUpl0be1f2vfC7XX1taiqanJot3Z2Rl+fn5tXuv999+HUqnEtGnTzMsOHToEb29vTJ8+HcHBwRg+fDh++eWX845Np9Ohrq7O4mEPnKQSvH3PYPQP8UKVphmzP90LdWOLrcsislsHStRY/O1+XPfadry++TDK1E3wc3fFEzf0wu5FN+DffxuCIWHdbF0mETm4y7pasLGxEaWlpe22NTQ0AIB579DZX+t0ujb9tVqtRd/W/q19L9TeeuL6hZ4PmM7rWrVqlflcrFaHDx+GVqvFxIkTsWjRImzcuBGTJ09Gamoqhg0b1qbWZcuW4YUXXmh33LamcHXGxzPjcce7u3H8VAMeX5uF/82K53w7RGfUNbXg++xSrN9bjNyyP/8wilV64YFRkbhtYDDkLk42rJCIOpvLCldpaWm4/vrr22174403AJiClFwuN38NoM05UAAgl8tRVVVlsUyn05n7yuXyNqFMp9PBx8enzfrbez4AZGRkoKSkBPfcc49Fv+effx5z585Ft26mv1AHDRqEzMxMfPjhh+2Gq8WLF2P+/Pnm7+vq6hAaGtru+2ALgV5yrJo5DHd9kIJdxyqx5IdcvDKlP69moi5LCIGMwhqsTy/GTwfK0NRiumrZ1UmKif2DMOO6cAwL78b/I0R0TVxWuBo3btx5L/svKyvDggULUF5ejoiICABAeXk5ACA4OLhN/5CQEOTm5losKy8vN/cNCQkxP//s9sGDB8PPzw9yuRzl5eXo27cvAECv16OqqsritTZv3owxY8aYQ1QrqVTaZlm/fv3a1NNKJpO12Utmb/qHeOPf9wzBQ2sysDatCEFecjxxQy9+eFCXUtWgw7dZpVi/twgnTmvMy3t398A9w8PwlyEh6ObO+/0R0bVltWNHSqUSYWFhSE5ONi9LTk5GWFhYu+EqISEBWVlZaGxstOifkJBgbj97XVqtFtnZ2UhISIBUKkV8fLxFe0pKClxcXDBo0CDzsrS0NIwaNarNa8+aNQuzZ8+2WLZv3z5zUHNUE2IC8c9J/QAAK7YexYub8mA0cg4s6tyMRoFdx07j719kIWHZdrzy8yGcOK2Bm4sT/jq0BzY8OhJb5o1BUmIkgxURdQirztD+6KOPYuHChejRowcAYNGiRfjHP/5hbj99+jTc3Nzg4eGBsWPHIjQ0FA888ACef/55/Pjjj0hPT8fq1asBALNnz8abb76J1157DZMnT8aLL76IyMhIjBs3DgDw2GOPYc6cOejfvz9CQkLw6KOP4qGHHrI4LHjw4EHcf//9beq8/fbbcc8992DcuHEYOXIk1q5di+TkZHz44YfWfDts4sHRUZBIJHhpUx5W7y5AtaYZb04bxKueqNMpVzfh64xifJlRjJKaP/9IG9jDG3fHh+L2QUp4yl1sWCERdVVWDVfPPPMMTp06halTp8LZ2RlJSUmYN2+euT0+Ph6zZs3C0qVL4eTkhO+//x5JSUkYOnQoevXqhY0bNyIsLAwAEBERgW+//RZPPfUUXnzxRYwcORLfffed+TDXPffcg4KCAsyZMwc6nQ533nmn+byvVhUVFW0O/wHAX/7yF7z33nt4+eWXUVRUhNjYWGzevNl8ONPRJSVGws/dFU9/nYPv95WhRtuC9++Lg7uMdzsix6bR6bElrxzfZZdh17HTaN0x6yl3xtQhIbg7PhSxSk70SUS2ZdVJRLsKe5lE9GJ+O3IKj36ehcYWAwaF+mD1rHj48rAIOZhmvRG7jp3Gd/vKsDWv3HxyOgAMj/DF3fGhmDQgGG6uvOKPiC6soz6/Ga6ugKOEKwDILqrBA5/sRa22BVEB7lg9Kx7hfu4XfyKRDRmNAplFNfguuxQ/H1ChRvvn/G0RfgrcMTgEdwxWIirAw4ZVEpGjYbiyY44UrgDg+Kl6TP84HSp1E9xdnfDCHf1xZ1wIryQku3OkvB7f7SvFD/vKUFr753lU/h4yTB4UjCmDQzCwhzd/donoijBc2TFHC1cAoFI34sl1+5BeUA0AuHVAMF6dOgDeCp7wS7ZVWtuIH/aV4ft9pThcXm9e7iFzxsTYIEwZosR1UX5w5sS4RHSVGK7smCOGKwAwGAX++/sJrNx6FHqjQLC3HCvuGozrevrZujTqYgqrNPg1txy/5lYgs/DPGya7OElwfZ/uuGNwCMb3686Z04nIqhiu7JijhqtW+4pr8dT6bBRUaSGRmG4APf/GaE7XQNeMEAK5ZXXYciZQHan4cw+VRAKMiPTFHYNDMKl/MPemEtE1w3Blxxw9XAGmS9pf/DEPX2YUAzDdZ23J5FgMj/S1cWXUWegNRuwtqMGvueXYmldhcQ6Vk1SChChfTIwNwo0xgQj2drNhpUTUVTBc2bHOEK5a/XJAhUXfHoC60XQ11sTYQCy8uS+vwqIr0tRiwB9HT2NLXgW2H6qwuMrPzcUJY6MDcFNsIMb3DeQeKiLqcAxXdqwzhSsAOFXfhJVbj+HLvUUwCsBZKsF9I8Iwd3xv+HnY9z0VyfYq6prwx9HT2H7oFH4/ehqNLQZzWzeFCyb0C8RNsUEY3duf51ARkU0xXNmxzhauWh2tqMdrvxzGjsOnAACeMmc8en1PzB4VyQ9FMmtsNiC9oBq7jp7GrmOVFudPAUCIjxtuig3ExNggDAvvxqv8iMhuMFzZsc4arlrtOV6JV34+hNyyOgCA0luOR8f1xF/ievAWOl2QEAKHVPXYdcwUptILqtGs/3OWdIkEGNjDx3TILyYQsUovzkNFRHaJ4cqOdfZwBZhmyP5uXyne+vUIytRNAEx7sqYN64EZ10Ug0p+zvHdmp+t1SD5+GruOVuKPY5WobNBZtCu95RgTHYDRvQMwqpcffBS8rRIR2T+GKzvWFcJVq6YWA9anF+GzlELkV2rMy8f1CcDMkREY2zsAUin3Uji6U3VNyCisQUZBDVLyq3BIVWfR7ubihOt6+mF0b3+M7h2AngHu3DtFRA6H4cqOdaVw1cpoFNh1vBKf7inAziOn0PpTE+GnwPTrIjAtrgev/nIQRqPAidMN2FtQg4zCamQU1KCoWtumX/8QL4zuHYDRvf0xNLwbZM48746IHBvDlR3riuHqbIVVGnyWUoivMopR36QHYLrC8Lqefri5v2neou6echtXSa2aWgw4UKrG3oJqZBbUIKOwxjz1RiuJBOgb5IVh4d0wLKIbEnv580pRIup0GK7sWFcPV600Oj02Zpfi89RCi3vCSSTA0LBuuLl/ECbGBiHUV2HDKrsWg1HgZGUDcsvqkFtWh8zCGhwoUaPZYLToJ3eRYkioKUgNi/DFkDAfeMm555GIOjeGKzvGcNVW/ukG/Jpbgc255cgprrVoiwn2wsTYIIztE4CYYC/eZsdKGpsNOFReh7yyOuSpTP8eLq9DU4uxTd8ATxmGhXfD0PBuiI/wRYzSCy6cIoGIuhiGKzvGcHVhKnUjtuRWYPPBcqQXVMNg/PNHTOYsxaBQHwwN74Zh4d0QF9YN3dx5pdmFCCFQ2dCMQyrT3ihTkFLjZKUGxnb+97q5OKFfsCdilF7mvVNhvgqegE5EXR7DlR1juLp01ZpmbDtUga15FdhbUI1abUubPlEB7ua9KnFh3RDh797l9qoIIVCtaUZBlRYFlRoUVmlMX1dpUFCpQd2Zc9vOFeApQ0ywF2KVXohReiEm2Avhfu5w4hWcRERtMFzZMYarK2M0CuRXapBVaLpKLbOwBidOa9r0c5JKEOarQJS/OyL93REZYPo3yt8DgV4yh90D09hsQGWDDhV1TSio0qKwSoOTlRoUnglR9ecJUIDpPLZIf3fEBJtCVKzSG/2CPXnhABHRZWC4smMMV9ZTo2lGVlENMgtNV7EdKFFb3JvuXApXJ0T4mQJXoKccfh6u6KZwha+7C7opXM3f+yhcr/neGyEEdHoj1I0tOF2v+/PRoGvzfWW9DvW684enVkpvOcL93BHh744IP8WZf90R7qfgLYiIiK4Sw5UdY7i6doxGgYr6Jpw8rUF+pWnPTv7pBpys1KC4ptHi/K0LkUgAbzcX+Cpc0c3dFTJnKZykEjhLJXCSSuHiJLH43lkqgbOT6XujALTNBjS1GKBt1qOxxYDGZgMaWwzQNv/5dWOLAZf7v0fmLEWApwxhvoo/A9SZMBXmywBFRHQtddTnN28UR3ZFKpUg2NsNwd5uGNnL36KtWW9EcY0WJ09rUFClwekGHWo0zag+86jRtqBa0wx1YwuEAGq1LaZzvCrbHnq0as0SwN9DhgDPM48zX1ssO/PwlDk77GFNIiK6NAxX5DBcnaXoGeCBngEeF+ynNxhR29iCGk0zqjTNqNU2o9kgoDcYoTcKGIzC9O+Z783LDAIGoxGQSKBwdYKbixPczvzb+r3c1amdNmeeQE5ERGYMV9TpODtJ4e9h2nPU29bFEBFRl9O1rncnIiIiusYYroiIiIisiOGKiIiIyIoYroiIiIisiOGKiIiIyIoYroiIiIisiOGKiIiIyIoYroiIiIisiOGKiIiIyIoYroiIiIisiOGKiIiIyIoYroiIiIisiOGKiIiIyIqcbV2AIxJCAADq6upsXAkRERFdqtbP7dbP8WuF4eoK1NfXAwBCQ0NtXAkRERFdrvr6enh7e1+z9UvEtY5vnZDRaERZWRk8PT0hkUjMy+vq6hAaGori4mJ4eXnZsMKO09XG3NXGC3S9MXe18QJdb8xdbbxA1xvz+cYrhEB9fT2USiWk0mt3ZhT3XF0BqVSKHj16nLfdy8urS/zwnq2rjbmrjRfoemPuauMFut6Yu9p4ga435vbGey33WLXiCe1EREREVsRwRURERGRFDFdWJJPJsGTJEshkMluX0mG62pi72niBrjfmrjZeoOuNuauNF+h6Y7b1eHlCOxEREZEVcc8VERERkRUxXBERERFZEcMVERERkRUxXJ1FCIFFixYhICAAvr6+WLBgAYxG43n7nzx5EhMmTIC7uztiYmKwZcsWi/Zt27ahf//+UCgUuOGGG5Cfn29u0+l0eOaZZ9CjRw9069YNU6dORUlJibm9qakJSUlJ8PHxQXBwMJYvX279AaNjx3y2hx56CEuXLrVYtnHjRkgkEovHtGnTrnqMZ7On8XbWbfz2228jJCQEnp6eSEpKglarNbddq218Oe9ldnY2RowYAYVCgfj4eGRmZlq0r1u3Dj179oRCocDUqVNRWVlpbrvYe1lVVYU777wTnp6eiIyMxOeff37VYzsfexnzypUr22zTp59+2voDRseNuZUQAjfddBM++eQTi+UdtZ3tZbydcRvX1tbiwQcfRGBgIAICAjBr1izU1taa2696Gwsye+utt0RoaKjYtWuX2LFjh1AqleLNN99st6/RaBQDBw4U9913n8jLyxOvvvqqUCgUorCwUAghRGFhoXB3dxdvvfWWOHjwoLjrrrvEgAEDhNFoFEIIsXDhQtGzZ0/x22+/idzcXHHrrbeK+Ph4c/vjjz8uBg4cKDIzM8W3334rPD09xddff+3QY271+uuvCwBiyZIlFstffvllMXnyZKFSqcyPmpqaTjvezriNv/nmG+Ht7S1+/PFHkZ6eLmJiYsTf//538/qv1Ta+1PeyoaFBBAUFiX/84x8iLy9PzJ07VwQGBoqGhgYhhBBpaWnCzc1NfPrppyInJ0eMHTtW3HrrrZf8Xt52221i/Pjx4sCBA2LVqlVCJpOJtLS0qx6fPY/5wQcfFI899pjFNq2rq3PoMQshhMFgEI8//rgAIFavXm3R1lHb2V7G2xm38d133y2GDRsmMjIyRGZmphg+fLiYNm2auf1qtzHD1VlCQ0MtfqjWrFkjwsPD2+27fft24e7ubt6QQggxfvx48wfo888/L8aOHWtu02g0wtPTU+zcuVMIIURgYKBYv369ub2srEwAEEePHhUNDQ1CLpeb+wohxEsvvWSxPmvpyDGr1Wpx5513im7duonQ0NA2YeO+++4TixcvtsKozs9exttZt/Ho0aMtxrlr1y7h5uYmNBqNEOLabOPLeS8//vhjERkZaQ6DRqNR9OrVy/z+TJ8+XcycOdPcv6ioSEgkEpGfny+EuPB7efz4cQFAnDx50tyelJRksT5rsZcxCyHEqFGjxAcffGCtoZ1XR465pKREjBs3ToSFhQkfHx+L8XfUdraX8QrR+bZxQ0ODcHJyEqmpqeb2PXv2CCcnJ9HY2GiVbczDgmeUlZWhuLgYY8aMMS9LTExEYWEhVCpVm/6pqamIi4uDu7u7Rf+UlBRz+9nrUigUiIuLQ0pKCoxGIz7//HPceOONbdarVquRk5ODlpYWjBw50mLdaWlpFzycc7k6csyA6XBTU1MTsrKyEBUV1Wb9eXl5iI6Ottr4zmVP4+2M29hgMGDv3r0W7QkJCWhubkZOTg6Aa7ONL+e9TE1NRWJiovmeoBKJBKNGjTrv+EJDQxEWFobU1NSLvpdpaWkIDQ1FRESERXvrujvjmAHg0KFD1/T/bauOGjMAZGVlITQ0FJmZmW1uldJR29lexgt0vm0slUqxadMmDB482GKdBoMBDQ0NVtnGDFdntP6iUCqV5mWBgYEAYHEu1Nn9z+7b2r+174XapVIpJkyYAF9fX3PbO++8A39/fwwcOBAqlQr+/v5wdXW1eG5TUxOqqqqucqSWYwA6ZswAMGjQIGzatMniB7aVEAJHjhzBr7/+iujoaPTs2ROLFi1Cc3PzlQ+wnfoB+xhvZ9zGtbW1aGpqsmh3dnaGn58fSkpKrtk2vpz38mrGd7H38mLrtiZ7GXNFRQWqq6vxySefICIiAv369cNbb70FcQ2mT+yoMQPA5MmT8dlnn8Hf37/dOjpiO9vLeDvjNnZzc8PNN99sMcHoO++8g4EDB8Lf398q27hL3bi5sbERpaWl7bY1NDQAgMWb3fq1Tqdr01+r1baZ+VUmk5n7Xqz9bN9//z3eeust/Pe//4Wrq+t5n3u+Wi7EXsd8rqKiIvPzv/rqK5w8eRJz585FY2Mj3nnnnYs+v5WjjLczbuPWE9fP126tbXypNbc3RmuP7+zXuZqfh8tlL2M+fPgwANMHz48//ojs7GzMnTsXTk5OmDdv3tUO85LG0VrLpfS9lv93rb2d7WW8XWEbv/vuu/jqq6+wefPmy37u+XSpcJWWlobrr7++3bY33ngDgGkDyuVy89eA6dDHueRyeZskrdPpzH3lcnmbDaHT6eDj42Ox7LvvvsPdd9+NJ554Ag8++OAFn3u+Wi7EHsfcnvDwcFRVVaFbt26QSCQYPHgwjEYj7r//fqxYsQJOTk4XXQfgOOPtjNv43PWf+3xrbeP2ar7U9/J8fS82PoVCYTG+9t7Li63bmuxlzHFxcaisrISfnx8AYMCAATh9+jTef/99q3/wdtSYr7QOa29nexnv2LFjO/U2fu+99zB37lysXLkSN91002U990K61GHBcePGQZhO4m/zuO+++wAA5eXl5v6tXwcHB7dZV0hIiEXf1v6tfS/WDgDr16/HX//6Vzz88MNYuXKlxborKyuh1+stnuvm5nZJH9z2POYL8fX1NR8/B4B+/fqhqakJ1dXVl/R8wHHG2xm3sZ+fH+RyuUW7Xq9HVVWV+fnW2Mbt1Xyp7+XVjC8kJMT8/dltAMztV/PzfznsZcwAzB+6rfr163fePalXo6PGfCl1dMR2tpfxAp13G7/11lv4+9//jjfeeANPPvnkJa/7UnSpcHUhSqUSYWFhSE5ONi9LTk5GWFhYu29oQkICsrKy0NjYaNE/ISHB3H72urRaLbKzs83t27dvx/Tp0/H444/jP//5j8W6Bw8eDBcXF/PJhq3rjo+Ph1RqvU3W0WO+kF9//RV+fn4WcyLt27cPfn5+CAgIuKLxncuextsZt7FUKkV8fLxFe0pKClxcXDBo0KBrto0v571MSEjAnj17zOeLCCGwe/fu846vuLgYxcXFSEhIuOh7mZCQgMLCQovzMs5+76zJXsa8atUq9OnTx+L8m3379qFv374OO+aL6ajtbC/j7azb+NNPP8UzzzyDlStXtpmzyyrb+JKvK+wCli1bJpRKpdi5c6fYuXOnUCqVYvny5eb2U6dOifr6eiGEEHq9XsTExIi7775bHDx4UCxbtkx4eHiY5wM6efKkkMvlYtmyZeb5gAYOHCiMRqNoaWkRYWFhYvz48RbzhqhUKqHT6YQQQsyZM0fExsaK9PR0sXHjRuHl5SU2bNjgsGM+19ixYy0u2a+rqxMhISHib3/7mzh8+LD4+eefhVKpFK+//nqnHK8QnXMbr1u3Tnh5eYmNGzeK9PR0ERsbK5544gkhxLXdxhd6L1UqldBqtUII0/QYAQEBYu7cuSI3N1fMnTtXBAUFmaee2LNnj3B1dRWrVq0SOTk5Yty4cWLy5MmX/F5OnDhRjBs3TuTk5IhVq1YJuVx+zea5socxFxQUCE9PTzF//nxx7Ngx8/b/8ssvHXrMZwsPD28zNUFHbWd7GG9n3MZVVVXCw8NDzJw5s81nsF6vF0Jc/TZmuDqLXq8X8+bNEz4+PsLf318sXLjQ4oMyPDzc4gPy2LFjYsyYMUImk4nY2FixdetWi/X9/PPPIjo6Wri5uYnx48eb5xRJSUkRANp9tM7vodFoxIwZM4S7u7tQKpVi5cqVDj3mc7UXNg4ePCgmTJggPDw8RHBwsFi6dGm7QeVq2NN4O+s2XrZsmejevbvw9vYWs2fPFo2Njea2a7WNL/Re4pxJEdPS0sSQIUOEXC4Xw4cPF1lZWRbrWr16tQgNDRXu7u5i6tSporKy0tx2sfeyoqJCTJ48WcjlchEZGSnWrl171WOz9zHv2rVLJCQkCDc3NxERESHef/99hx/z2doLVx21ne1lvJ1tG69bt+68n8Gtc1td7TaWnCmYiIiIiKyA51wRERERWRHDFREREZEVMVwRERERWRHDFREREZEVMVwRERERWRHDFREREZEVMVwRERERWRHDFREREZEVMVwRERERWRHDFREREZEVMVwRERERWRHDFREREZEV/T8KyTnm513iUQAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-1.0\n",
      "-1.0\n",
      "\n"
     ]
    }
   ],
   "source": [
    "betax_mGBZ = solve_beta_x(E, thetay)\n",
    "\n",
    "Jy_charge = np.sign((Jy * np.exp(-1j * thetay)).imag)\n",
    "print(\"Jy charge\", Jy_charge)\n",
    "for betax in betax_mGBZ:\n",
    "    r = abs(betax)\n",
    "    thetax = np.log(betax).imag\n",
    "    # 1. Get theoretical winding number\n",
    "    dvxy_charge = np.sign(diff_vxy(\n",
    "        E, r, thetax\n",
    "    ).imag)\n",
    "    theoretical_charge = -Jy_charge * dvxy_charge # For thetay, thetax\n",
    "\n",
    "    # 2. Get numerical winding number\n",
    "    epsilon = 1e-3\n",
    "    t = np.linspace(0, 2 * np.pi, 100)\n",
    "    thetay_list = thetay + epsilon * np.cos(t)\n",
    "    thetax_list = thetax + epsilon * np.sin(t)\n",
    "    betax_winding = r * np.exp(1j * thetax_list)\n",
    "    betay_winding = gamma_y * np.exp(1j * thetay_list)\n",
    "    ChP_val = ChP_xy(E, betax_winding, betay_winding)\n",
    "    plt.plot(ChP_val.real, ChP_val.imag)\n",
    "    plt.show()\n",
    "    print(wGs.get_winding_number(ChP_val))\n",
    "    print(theoretical_charge)\n",
    "    print()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# [11]-strip"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "def ChP_11(E, beta_11, beta_y):\n",
    "    return (\n",
    "        E\n",
    "        - Jx1 * beta_y / beta_11\n",
    "        - Jx2 * beta_11 / beta_y\n",
    "        - Jy1 / beta_y\n",
    "        - Jy2 * beta_y\n",
    "    )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "def v11(r, theta_11):\n",
    "    return (\n",
    "        Jx1 * Jy1 / r * np.exp(-1j * theta_11)\n",
    "        + Jx2 * Jy2 * r * np.exp(1j * theta_11)\n",
    "        + Jx1 * Jx2\n",
    "        + Jy1 * Jy2\n",
    "    )\n",
    "\n",
    "def diff_v11(r, theta_11):\n",
    "    return (\n",
    "        -1j* Jx1 * Jy1 / r * np.exp(-1j * theta_11)\n",
    "        + 1j * Jx2 * Jy2 * r * np.exp(1j * theta_11)\n",
    "    )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "def solve_beta11(E, Delta_y):\n",
    "    ''' Delta_y is defined as theta_y + varphi_11/2'''\n",
    "    lhs = E ** 2 / 4 / (cos(Delta_y) ** 2)\n",
    "    all_roots = np.roots(\n",
    "        [Jx2 * Jy2,\n",
    "         Jx1 * Jx2 + Jy1 * Jy2 - lhs,\n",
    "         Jx1 * Jy1]\n",
    "    )\n",
    "    root_pair_list = []\n",
    "    for beta_11 in all_roots:\n",
    "        phi_11 = np.log(\n",
    "            (Jx1 / beta_11 + Jy2)\n",
    "            / (Jx2 * beta_11 + Jy1)\n",
    "        ).imag\n",
    "        theta_y_list = np.array([\n",
    "            Delta_y - phi_11 / 2,\n",
    "            Delta_y - phi_11 / 2 + pi\n",
    "        ])\n",
    "        beta_y_list = sqrt(abs(\n",
    "            (Jx2 * beta_11 + Jy1) / (Jx1 / beta_11 + Jy2)\n",
    "        )) * exp(1j * theta_y_list)\n",
    "        val = abs(ChP_11(E, beta_11, beta_y_list))\n",
    "        min_ind = np.argmin(val)\n",
    "        root_pair_list.append((beta_11, theta_y_list[min_ind]))\n",
    "    return root_pair_list\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Test derivative"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(-7.771561172376096e-16-1.3322676295501878e-15j)\n",
      "(-2.220446049250313e-16-8.604228440844963e-16j)\n"
     ]
    }
   ],
   "source": [
    "# Test beta11 solutions\n",
    "E = np.random.randn() + 1j * np.random.randn()\n",
    "Delta_y = np.random.rand() * 2 * pi\n",
    "\n",
    "all_roots = solve_beta11(E, Delta_y)\n",
    "for beta_11, theta_y in all_roots:\n",
    "    beta_y = sqrt(abs(\n",
    "        (Jx2 * beta_11 + Jy1) / (Jx1 / beta_11 + Jy2)\n",
    "    )) * exp(1j * theta_y)\n",
    "    print(ChP_11(E, beta_11, beta_y))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(-0.0001742561994100278-0.00011459572488448089j)\n",
      "(-0.00017425331551764706-0.00011459992866515844j)\n",
      "5.097902239998583e-09\n",
      "\n",
      "(-0.00013371721550670124+9.132841562120575e-06j)\n",
      "(-0.0001337170309857492+9.134938810327356e-06j)\n",
      "2.105349857526426e-09\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# test dv11\n",
    "E = np.random.randn() + 1j * np.random.randn()\n",
    "Delta_y = np.random.rand() * 2 * pi\n",
    "dtheta_y = np.random.randn() * 1e-3\n",
    "roots = solve_beta11(E, thetay)\n",
    "for beta_11, theta_y in roots:\n",
    "    r = abs(beta_11)\n",
    "    theta_11 = np.log(betax).imag\n",
    "    dthetax = np.random.randn() * 1e-4\n",
    "    v2 = v11(r, thetax + dthetax)\n",
    "    print(v2 - v11(r, thetax))\n",
    "    print(diff_v11(r, thetax) * dthetax)\n",
    "    print(abs(v2 - v11(r, thetax) - diff_v11(r, thetax) * dthetax))\n",
    "    print()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[(-15900.888161046336+5507.016364216758j), (-8.987273122512328e-05-0.0002196360471197063j)]\n",
      "[(-16049.033570524814+5558.3363443524495j), (-8.904296536750254e-05-0.00021760864011502264j)]\n",
      "[ 0.00482247 -0.00482247]\n",
      "[8.77127388e-05 8.96333310e-05] 8.867303489827356e-05\n",
      "[ 5.30110792e+06 -1.03493108e-09]\n",
      "[ 4.22992323e-07 -4.32254327e-07]\n",
      "[5.30110792e+06 4.26588394e-07]\n"
     ]
    }
   ],
   "source": [
    "# Test derivative\n",
    "dtheta = np.random.randn() * 1e-3\n",
    "# 1. Calculate betax for theta and theta + dtheta\n",
    "betax1 = solve_beta11(E, Delta_y)\n",
    "betax2 = solve_beta11(E, Delta_y + dtheta)\n",
    "\n",
    "# 2. Match solutions by distance\n",
    "distance_list = np.abs(\n",
    "    [abs(betax2[j][0] - betax1[0][0]) for j in range(2)]\n",
    ")\n",
    "if np.argmin(distance_list) == 0:\n",
    "    pass\n",
    "else:\n",
    "    betax2 = betax2[::-1]\n",
    "\n",
    "thetay1 = [p[1] for p in betax1]\n",
    "thetay2 = [p[1] for p in betax2]\n",
    "deltay_list = np.array(thetay2) - np.array(thetay1)\n",
    "betax1 = [p[0] for p in betax1]\n",
    "betax2 = [p[0] for p in betax2]\n",
    "print(betax1)\n",
    "print(betax2)\n",
    "# 3. Calculate derivative for theta\n",
    "derivative_list = np.zeros(2)\n",
    "for point_ind in range(2):\n",
    "    # curr_betax = betax1[point_ind]\n",
    "    # curr_r = abs(curr_betax)\n",
    "    # curr_thetax = np.log(curr_betax).imag\n",
    "    # C = (r ** 2) / (\n",
    "    #     2 * np.abs(\n",
    "    #         - Jx1 * Jy1 / r / exp(1j * curr_betax)\n",
    "    #         + Jx2 * Jy2 * r * exp(1j * curr_betax)\n",
    "    #     )**2 * cos(Delta_y) ** 2\n",
    "    # )\n",
    "    # thetay_term = np.tan(Delta_y)\n",
    "    # diff_term = (E.conjugate() ** 2 * diff_v11(curr_r, curr_thetax)).imag\n",
    "    # derivative_list[point_ind] = 2 * C * thetay_term * diff_term\n",
    "    derivative_list[point_ind] = (\n",
    "        (E**2 * r ** 2 * np.tan(Delta_y)) \n",
    "         / (\n",
    "             2 *(\n",
    "                 - Jx1 * Jy1 / betax1[point_ind]\n",
    "                 + Jx2 * Jy2 * betax1[point_ind]\n",
    "             )\n",
    "         )\n",
    "    ).real * 2\n",
    "print(derivative_list)\n",
    "\n",
    "print(deltay_list, dtheta)\n",
    "# 4. Calculate numeric derivative\n",
    "print(np.abs(betax2) ** 2 - np.abs(betax1) ** 2)\n",
    "print(derivative_list * deltay_list)\n",
    "print(np.abs(betax2) ** 2 - np.abs(betax1) ** 2 - derivative_list * dtheta)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Test topological charge"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "E = np.random.rand() + 1j * np.random.randn()\n",
    "Dtheta_y = np.random.rand() * 2 * pi"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[((-1.8404094791939798+1.3257855482080907j), 7.055798757272952), ((-0.17145103701586872-1.7522105615019927j), 4.878664103375196)]\n"
     ]
    }
   ],
   "source": [
    "all_sols = solve_beta11(E, Dtheta_y)\n",
    "print(all_sols)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9999999999999999\n",
      "0.5349798227646477\n",
      "-1.0 1.072098405376252e-15\n",
      "\n",
      "-1.0\n",
      "-0.534979822764652\n",
      "1.0 9.930136612989092e-16\n",
      "\n"
     ]
    }
   ],
   "source": [
    "for beta_11, theta_y in all_sols:\n",
    "    r = abs(beta_11)\n",
    "    theta_11 = log(beta_11).imag\n",
    "    epsilon = 1e-3\n",
    "    t = np.linspace(0, 2 * pi, 1000)\n",
    "    theta_11_loop = theta_11 + epsilon * sin(t)\n",
    "    theta_y_loop = theta_y + epsilon * cos(t)\n",
    "    beta_11_loop = r * exp(1j * theta_11_loop)\n",
    "    beta_y_loop = sqrt(np.abs(\n",
    "        (Jx2 * beta_11_loop + Jy1) /\n",
    "        (Jx1 / beta_11_loop + Jy2)\n",
    "    )) * exp(1j * theta_y_loop)\n",
    "    f_val = ChP_11(E, beta_11_loop, beta_y_loop)\n",
    "    print(wGs.get_winding_number(f_val))\n",
    "\n",
    "    varphi_11 = log(\n",
    "        (Jx2 * beta_11 + Jy1) /\n",
    "        (Jx1 / beta_11 + Jy2)\n",
    "    ).imag\n",
    "    print(-tan(theta_y - varphi_11 / 2)\n",
    "          * (diff_v11(r, theta_11) / v11(r, theta_11)).imag)\n",
    "\n",
    "    theta_y2 = varphi_11 - theta_y\n",
    "    theta_11_loop = theta_11 + epsilon * sin(t)\n",
    "    theta_y_loop = theta_y2 + epsilon * cos(t)\n",
    "    beta_11_loop = r * exp(1j * theta_11_loop)\n",
    "    beta_y_loop = sqrt(np.abs(\n",
    "        (Jx2 * beta_11_loop + Jy1) /\n",
    "        (Jx1 / beta_11_loop + Jy2)\n",
    "    )) * exp(1j * theta_y_loop)\n",
    "    f_val = ChP_11(E, beta_11_loop, beta_y_loop)\n",
    "    print(wGs.get_winding_number(f_val), abs(ChP_11(E, beta_11, sqrt(np.abs(\n",
    "        (Jx2 * beta_11 + Jy1) /\n",
    "        (Jx1 / beta_11 + Jy2)\n",
    "    )) * exp(1j * theta_y2))))\n",
    "    print()\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[64 14 97 17 48 50 39 76 62 98 89 53 47  2 74 59 70 63 12 71 21 52 18 26\n",
      "  7 11 56 34 30 15 42 54 29 19 31 32 96 38 91 25 61  4 90 43 94  9  0 68\n",
      "  3 49  5 28 95 73 83 82 37 23 92 35 27 10 46 22 85 75 81 57 16 20 79 88\n",
      " 66 51  1 45 44 67 24 77 41  6 55 58 36 87 78 99 80  8 86 72 84 69 60 40\n",
      " 93 13 33 65]\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "class BIT:\n",
    "    def __init__(self, size):\n",
    "        self.size = size\n",
    "        self.tree = [0] * (size + 1)\n",
    "\n",
    "    def update(self, index, value=1):\n",
    "        while index <= self.size:\n",
    "            self.tree[index] += value\n",
    "            index += index & -index\n",
    "\n",
    "    def query(self, index):\n",
    "        res = 0\n",
    "        while index > 0:\n",
    "            res += self.tree[index]\n",
    "            index -= index & -index\n",
    "        return res\n",
    "\n",
    "def count_inversions(arr):\n",
    "    # 离散化处理（如果数组元素不是连续的整数）\n",
    "    sorted_arr = sorted(arr)\n",
    "    rank = {num: i+1 for i, num in enumerate(sorted_arr)}\n",
    "\n",
    "    bit = BIT(len(arr))\n",
    "    inversion_count = 0\n",
    "\n",
    "    for num in reversed(arr):\n",
    "        r = rank[num]\n",
    "        inversion_count += bit.query(r - 1)\n",
    "        bit.update(r)\n",
    "\n",
    "    return inversion_count\n",
    "\n",
    "# 示例\n",
    "arr = np.arange(100)\n",
    "np.random.shuffle(arr)\n",
    "print(arr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "def count_inversions_brute_force(arr):\n",
    "    n = len(arr)\n",
    "    inversion_count = 0\n",
    "    for i in range(n):\n",
    "        for j in range(i + 1, n):\n",
    "            if arr[i] > arr[j]:\n",
    "                inversion_count += 1\n",
    "    return inversion_count"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "for _ in range(1000):\n",
    "    count_inversions(arr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "for _ in range(1000):\n",
    "    count_inversions_brute_force(arr)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "base",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.16"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
